Date: Tue, 8 Dec 2009 08:13:58 -0500 From: John Baldwin <jhb@freebsd.org> To: freebsd-fs@freebsd.org Subject: Re: PATCH: increase heap size for (gpt)zfsboot Message-ID: <200912080813.58600.jhb@freebsd.org> In-Reply-To: <f383264b0912071601p3bfab229rd1b282b80db2aff6@mail.gmail.com> References: <f383264b0912071601p3bfab229rd1b282b80db2aff6@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200912080813.58600.jhb>