Re: gptzfsboot problem on HP P410i Smart Array

From: John Baldwin <jhb_at_freebsd.org>
Date: Thu, 4 Apr 2013 13:16:12 -0400
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 <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.
> 

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
Received on Thu Apr 04 2013 - 15:22:18 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:36 UTC