PATCH: increase heap size for (gpt)zfsboot
John Baldwin
jhb at freebsd.org
Tue Dec 8 13:36:07 UTC 2009
On Monday 07 December 2009 7:01:03 pm Matt Reimer wrote:
> Enlarge the heap size for gptzfsboot and zfsboot. This is necessary so
> the ZFS code has enough memory to handle decompression and error
> recovery.
>
> Before this patch the heap grew from the end of the (gpt)zfsboot code
> and static data up to 640KB, possibly overrunning the stack. Now the
> heap is located at 16MB-64MB.
>
> Note that this requires machines with at least 64MB RAM, but this is
> not likely to be a problem on any machine running ZFS.
>
> Sponsored by: VPOP Technologies, Inc.
>
> Matt Reimer
Unfortunately the 16M - 64M range may not all be useable RAM. It may contain
ACPI tables, etc. A robust approach would involve walking the SMAP, etc. I
just committed some changes to sys/boot/i386/loader/biosmem.c that make it
smarter about choosing a heap region. I suggest adopting that algorithm for
figuring out a safe heap range. zfsboot and gptzfsboot should have enough
free space to take the bios_getmem() function. You can increase the minimum
heap size beyond 3M if desired (though 3M is the minimum the loader will
guarantee currently, and if ZFS needs more than that it likely needs to be
changed in both places).
--
John Baldwin
More information about the freebsd-fs
mailing list