FreeBSD 6.0 panic: kmem_malloc(16384): kmem_map too small: 172728320 total allocated

Scott Long scottl at samsco.org
Wed Dec 14 07:40:58 PST 2005


Gleb Smirnoff wrote:

> On Wed, Dec 14, 2005 at 01:25:30PM +0100, Fabian Keil wrote:
> F> I triggered a few reproducible panics on FreeBSD 6.0-STABLE.
> F> 
> F> I created a ramdisk with:
> F>  
> F>         /sbin/mdconfig -a -t malloc -s 256M -u 10
> F>         /sbin/newfs -U /dev/md10
> F>         /sbin/mount /dev/md10 /mnt/ramdisk
> F> 
> F> The system has "avail memory = 515932160 (492 MB)"
> F> and 1GB swap space.
> F> 
> F> While copying to /mnt/ramdisk trough ftp localhost
> F> it got:
> 
> This usually exposes some memory leak in kernel. Can you please do the
> following - copy some amount of data to /mnt/ramdisk trough ftp localhost,
> and cancel the operation before it panics.
> 
> Then run vmstat -m and vmstat -z, to determine what kind of memory allocation
> is leaking.
> 
> 

While it can mean a memory leak in the kernel, I don't think that's the 
case here.
On i386, only 320MB can be allocated to kernel malloc memory.   Much of 
this space
can get consumed with vnodes and other filesystem structures, so trying 
to allocate
256MB to a ramdisk is likely putting you over the max.  I'd suggest 
instead to use
a swap-back disk.  It doesn't necessarily mean that the ramdisk pages 
will live in
swap, it just means that they will get managed directly in the bufcache, 
eliminating
the 320MB restriction.

Scott


More information about the freebsd-stable mailing list