Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Dec 2002 22:48:57 -0800 (PST)
From:      Julian Elischer <julian@elischer.org>
To:        Nate Lawson <nate@root.org>
Cc:        FreeBSD current users <current@FreeBSD.ORG>, re@freebsd.org
Subject:   Re: 5.0 showstopper 
Message-ID:  <Pine.BSF.4.21.0212132233001.14352-100000@InterJet.elischer.org>
In-Reply-To: <Pine.BSF.4.21.0212131710440.37808-100000@root.org>

next in thread | previous in thread | raw e-mail | index | archive | help


On Fri, 13 Dec 2002, Nate Lawson wrote:

> On Fri, 13 Dec 2002, Julian Elischer wrote:
> > On Fri, 13 Dec 2002, Peter Wemm wrote:
> > > Julian Elischer wrote:
> > > > looking at the code in src/sys/i386/i386/dump_machdep.c,
> > > > 
> > > > we see:
> > > >   78         dumplo = di->mediaoffset + di->mediasize - Maxmem *
> > > > (off_t)PAGE_SIZE;
> > > >   79         dumplo -= sizeof kdh * 2;
> > > >   80         i = di->dumper(di->priv, &kdh, 0, dumplo, sizeof kdh);
> > > >   81         if (i)
> > > >   82                 printf("\nDump failed writing header (%d)\n", i);
> > > >   83         dumplo += sizeof kdh;
> > > >   84         i = 0;
> > > > 
> > > > It looks like the following test should go after line 77
> > > >  
> > > > 	if (di->mediasize <  ((Maxmem * (off_t)PAGE_SIZE) +
> > > > 	     (sizeof kdh * 2) + (16*1024)) {
> > > > 			/* 16K is an arbitrary  buffer
> > > > 			 * in case the swap part is
> > > > 			 * the first part
> > > > 			 */
> > > > 		printf("\nDump failed. Partition too small.\n");
> > > > 		return;
> > > > 	}
> > > 
> > > We used to force a 64K safety buffer for swapon, and I think we also did
> > > 64K for dump before the last MI dump code conversion.  I'd feel a little
> > > happier if you used 64K here instead of 16K.
> > 
> > I'm happy with 64k.. I just chose 16 arbitrarily because I remembered
> > that there was SOME safety value but I couldn't remember what it was..
> 
> 1. Why 2 * kdh (the header size)?  I thought there was just one.

because that is the space that is used 
There is a header and a trailer..



> 2. Excessive parens before compare

that's just your opinion. I know I'm in a minority but 
more parens is better for me. 
especially to indicate the logical reasons for the various componets..

(Maxmem * (off_t)PAGE_SIZE)
(2 * sizeof(kdh))
(64 * 1024)

Each of which has a separate reason for existing.

 3. Extra \n in printf

I do what the other printf's there do.

> 
> So how about:
>     /*
>      * Minimum dumpdev size is Maxmem, dump header, 
>      * and 64k safety margin.
>      */
>     if (di->mediasize < Maxmem * (off_t)PAGE_SIZE + sizeof(kdh) +
>         64 * 1024) {
>             printf("Dump failed. Partition too small.\n");
>             return;
>     }
> 
> -Nate
> 
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-current" in the body of the message
> 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0212132233001.14352-100000>