FreeBSD 8.1-Prerelease Panic amd64 w/ZFS..

Andriy Gapon avg at
Fri May 28 16:49:44 UTC 2010

on 28/05/2010 16:45 Jeremy Chadwick said the following:
> It is?  On amd64, vm.kmem_size (not vm.kmem_size_max) is what has to be
> increased.  I can point folks to the "official" statement from pjd@ and
> some others if need be.  For a very long time I questioned this because
> for an even longer amount of time we were being told to increase
> vm.kmem_size_max.
> vm.kmem_size_max, by default, is already huge on amd64 (~320GB or
> something like that).  Proof:
> vm.kmem_size_max: 329853485875
> To the OP: you will need to increase vm.kmem_size in /boot/loader.conf
> and reboot the system.  "What value do I pick?"  With 4GB, I would
> recommend you use these two variables:
> vm.kmem_size="2048M"
> vfs.zfs.arc_max="1536M"
> This will increase the available kmem, and also limit the ARC size
> explicitly to nothing larger than 1.5GB.  This should stabilise your
> system.


you are correct, I was confused about what kmem_size_max and kmem_size meant.
kmem_size_max is what could be available, in principle, for kmem_map.
But in practice kmem_map size is auto-set to about 1/3 of physical memory
available, this is on amd64.
BTW, the "6GB" change you mentioned in your other email was more relevant to
kmem_size_max, it was overridden since then with 512GB change.

kmem size calculations are very well explained here:

BTW, I don't see why we set kmem size to a fraction of physical memory on amd64
where we have plenty of KVM available.  I don't buy the argument that larger kmem
size would allow kernel to exhaust all physical memory which would lead to a "bad
thing", e.g. a panic - right now kernel can exhaust all kmem which does lead to a

Perhaps, default value of VM_KMEM_SIZE_SCALE should be change to one on amd64?

Andriy Gapon

More information about the freebsd-amd64 mailing list