Date: Fri, 22 Jan 2010 18:33:29 -0800 From: Artem Belevich <fbsdlist@src.cx> To: Doug Poland <doug@polands.org> Cc: freebsd-fs@freebsd.org Subject: Re: Repeatable ZFS "kmem map too small" panic on 8.0-STABLE Message-ID: <ed91d4a81001221833v57b69625j808ca14ec198d046@mail.gmail.com> In-Reply-To: <ed91d4a81001221824u5c222e08l80395398c0a61c16@mail.gmail.com> References: <4B58976E.1020402@polands.org> <ed91d4a81001211421r4f7ba7a8n1c92bfc413e5feed@mail.gmail.com> <4B58D4D3.80009@egr.msu.edu> <20100122042843.GA8858@polands.org> <ed91d4a81001212209o3cf5955fw1eb0dd78703ad905@mail.gmail.com> <a8b9c9e35a14c4ada1c8f2602c91db63.squirrel@email.polands.org> <a4ab3938f95de65086a18607309178c4.squirrel@email.polands.org> <ed91d4a81001221211j2bc05b6bv22a51a8b2fcbcec1@mail.gmail.com> <1308c71eec426200d4c34b926bba8806.squirrel@email.polands.org> <ed91d4a81001221824u5c222e08l80395398c0a61c16@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Ignore my previous email. Something else is probably at play here. If I were right, then you should have ended up with vm.kmem_size=3D8G. However, in your case it's 2G. Beats me why. You may want to get to the console prompt and check whether loader did set the values correctly before it boots the kernel. If it didn't, then there may be something wrong with your /boot/loader.conf. Unfortunately whatever errors loader prints are immediately erased by the boot menu, so it's hard to see what exactly is the problem. --Artem On Fri, Jan 22, 2010 at 6:24 PM, Artem Belevich <fbsdlist@src.cx> wrote: >> % sysctl hw.physmem vm.kmem_size vm.kmem_size_max vfs.zfs.arc_max >> >> hw.physmem:4102688768 >> vm.kmem_size: 2147483648 > > Here's your problem -- kmem_size is for some reason only 2G. > > Argh! I ran into that before. The code in sys/kern/kern_malloc.c > intentionally limits kmem_size to twice the physical memory size: > > =A0 =A0 =A0 =A0/* > =A0 =A0 =A0 =A0 * Limit kmem virtual size to twice the physical memory. > =A0 =A0 =A0 =A0 * This allows for kmem map sparseness, but limits the siz= e > =A0 =A0 =A0 =A0 * to something sane. Be careful to not overflow the 32bit > =A0 =A0 =A0 =A0 * ints while doing the check. > =A0 =A0 =A0 =A0 */ > =A0 =A0 =A0 =A0if (((vm_kmem_size / 2) / PAGE_SIZE) > cnt.v_page_count) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0vm_kmem_size =3D 2 * cnt.v_page_count * PA= GE_SIZE; > > So, either comment out these lines or just set vm.kmem_size to > slightly below 8G. > > --Artem >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ed91d4a81001221833v57b69625j808ca14ec198d046>