[geeks] One, two, three, panic!

Phil Stracchino alaric at metrocast.net
Sun Mar 15 18:59:51 CDT 2009


But this time I saw it.  Reinstalled 7.1R-i386, remirrored boot, set up
a zpool on the 9500, put /usr/ports onto it, tried to do an updatedb for
locate, and FreeBSD fell over instantly:

panic: kmem_malloc(36864): kmem_map too small: 353237232 total allocated


I looked around for this a bit, and it appears to be a known and fairly
common problem.  Apparently the FreeBSD kernel auto-calculates several
kernel parameters based on the amount of memory it finds in the box, but
if the box has more than 1G of RAM the algorithm apparently often
calculates values bigger than the kernel can handle.  (Which seems
stupid to me.  What's wrong with setting a few sane maximum limits in
there?)

According to the documentation I found, the alleged fix is to recompile
the kernel with VM_KMEM_SIZE_MAX set to 400MB.

# sysctl -h vm.kmem_size_max
vm.kmem_size_max: 335544320

So much for that fix ... I'm already 65MB into "safe" territory.



-- 
  Phil Stracchino, CDK#2     DoD#299792458     ICBM: 43.5607, -71.355
  alaric at caerllewys.net   alaric at metrocast.net   phil at co.ordinate.org
         Renaissance Man, Unix ronin, Perl hacker, Free Stater
                 It's not the years, it's the mileage.



More information about the geeks mailing list