kmem leak in tmpmfs?
Iasen Kostov
tbyte at otel.net
Fri May 26 04:25:23 PDT 2006
On Fri, 2006-05-26 at 13:15 +0200, Fabian Keil wrote:
> Iasen Kostov <tbyte at otel.net> wrote:
>
> > On Thu, 2006-05-25 at 16:54 -0400, Kris Kennaway wrote:
> > > On Thu, May 25, 2006 at 06:01:30PM +0200, Arno J. Klaassen wrote:
>
> > > > I get a very easy to reproduce panic on 6.1-STABLE :
> > > >
> > > > /etc/periodic/weekly/310.locate panics with
> > > >
> > > > panic: kmem_malloc(4096): kmem_map too small: 335544320 total
> > > > allocated
> > >
> > > It looks like you are using a malloc-backed md and you do not have
> > > enough RAM to handle the size. Perhaps tmpmfs does not use swap
> > > backing, as it is supposed to?
>
> > First of all if there is not enough kmem (not just plain ram
> > I think) kernel should not allow disk creation in first place, second
> > - I think (although there could be some ... reason for that) it's
> > stupid way to say "I don't have more kmem" by panicing :). Better way
> > will be just to fail disk operation of that FS with "Disk is full" or
> > something like that. At home I tried to raise kmem like that:
> > "vm.kmem_size_max="1073741824" (I got 2G of RAM)
> > (setting vm.kmem_size directly panices kernel at boot if I remember
> > correctly).
> >
> > but for my surprise kernel panices at exact same allocated md disk
> > space with the same panic as the original poster's. Is it possible
> > that I should rise KVA_PAGES too ? And I don't think its documented
> > anywhere (of course I've tried googling and it's always possible that
> > I've missed something :). All this was on FreeBSD 6.0.
>
> man mdconfig mentions the problem:
>
> malloc Storage for this type of memory disk is allocated with
> malloc(9). This limits the size to the malloc bucket
> limit in the kernel. If the -o reserve option is not
> set, creating and filling a large malloc-backed memory
> disk is a very easy way to panic a system.
>
> Use a swap backed disk and the problem will disappear.
I ment KVA_PAGES (If it is the limit). But may be "malloc bucket
limit" (which I don't realy understand what it means) has something to
do with it ? But whatever is the cause I think it no good practice to
leave such easy ways to panic the kernel unsecured/pached/fixed. And I
wander why even when I set kmem_size_max to 1G kernel still panices
around 350MB allocated md space ? I mean what is the real issue there ?
Regards.
More information about the freebsd-stable
mailing list