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

Fabian Keil freebsd-listen at fabiankeil.de
Wed Dec 14 08:33:18 PST 2005


Scott Long <scottl at samsco.org> wrote:

> 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.

I guess you're right. I can fill a 256MB swap-backed disk without panic 
and without swapping.

Before ftp localhost:
last pid:   652;  load averages:  0.02,  0.09,  0.07    up 0+00:07:16
17:12:05 37 processes:  1 running, 36 sleeping
CPU states:  0.0% user,  0.0% nice,  0.0% system,  0.4% interrupt,
99.6% idle Mem: 11M Active, 12M Inact, 18M Wired, 11M Buf, 453M Free
Swap: 999M Total, 999M Free

After ftp localhost:
last pid:   666;  load averages:  0.20,  0.12,  0.08    up 0+00:09:05
17:13:54 36 processes:  1 running, 35 sleeping
CPU states:  0.0% user,  0.0% nice,  0.0% system,  0.4% interrupt,
99.6% idle Mem: 244M Active, 150M Inact, 73M Wired, 27M Cache, 60M Buf, 984K Free
Swap: 999M Total, 999M Free

After removal of the swap-backed disk:
last pid:   690;  load averages:  0.00,  0.01,  0.03    up 0+00:17:53
17:22:42 34 processes:  1 running, 33 sleeping
CPU states:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,
100% idle Mem: 15M Active, 76M Inact, 43M Wired, 13M Cache, 60M Buf, 347M Free
Swap: 999M Total, 999M Free

Thanks for your time Gleb and Scott.

Fabian
-- 
http://www.fabiankeil.de/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20051214/69d41911/signature.bin


More information about the freebsd-stable mailing list