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 <avg_at_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 _at__at_ -374,6 +374,16 _at__at_ 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. -- Andriy GaponReceived on Thu Apr 04 2013 - 14:16:42 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:36 UTC