On Thursday, April 04, 2013 12:16:32 pm Andriy Gapon wrote: > on 19/03/2013 18:20 John Baldwin said the following: > > Yes, we likely could start using that, we would just need to ensure it has some > > sort of minimum size. However, maybe it would always have that minimum size as you > > are only going to have additional ranges if you have more than 4GB of RAM anyway. > > I think though that there were some odd BIOSes that would place a hole at 15-16MB, > > and for those the memory region at 1MB is too small. A minimum size of 16MB might > > handle that case correctly while using the first extended region in the common > > case. > > How about something like this? > > Author: Andriy Gapon <a...@icyb.net.ua> > Date: Wed Apr 3 11:48:34 2013 +0300 > > [test] zfsboot: bios_getmem prefer extmem over another random chunk of high memory > > If the extended memory region is sufficiently large. > > diff --git a/sys/boot/i386/zfsboot/zfsboot.c b/sys/boot/i386/zfsboot/zfsboot.c > index 82402b6..12ceeb0 100644 > --- a/sys/boot/i386/zfsboot/zfsboot.c > +++ b/sys/boot/i386/zfsboot/zfsboot.c > @@ -374,6 +374,16 @@ bios_getmem(void) > } > > /* > + * If extended memory is at least twice as large as the largest > + * region of higher memory, then carve the high heap out of > + * extended memory. > + */ > + if (bios_extmem > 2 * high_heap_size) { > + high_heap_base = 0x100000 + bios_extmem / 2; > + high_heap_size = bios_extmem / 2; > + } > + > + /* > * If we have extended memory and did not find a suitable heap > * region in the SMAP, use the last 3MB of 'extended' memory as a > * high heap candidate. >
We should really use the same algorithm in boot2 and gptboot as well. I think though that in this case you can just use the last 3MB of heap rather than half of the extended memory as heap. -- John Baldwin _______________________________________________ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"