Skip site navigation (1)Skip section navigation (2)
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>