RE: Page Allocation Failure, Why?? Bug in kernel??

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Thanks for the responses.

But it seems I am not able to convey my problem statement correctly. My
question is when 128 (((order=5)=32)*4kbytes) contiguous pages are free, as
indicated by

.....
DMA: 106*4kB 11*8kB 5*16kB 3*32kB 2*64kB .....1*128kB..... 0*256kB 0*512kB
0*1024kB = 944kB
.....

WHY IT HAS NOT BEEN ALLOCATED TO THE APPLICATION IN FIRST PLACE.

I am also facing a somwhat similar problem. I get an OOM-KILLER for a
request of 1 page, where as the output generated by OOM-KILLER shows the
following:

.....
DMA: 0*4kB 0*8kB 0*16kB 0*32kB 2*64kB 1*128kB 1*256kB 0*512kB 0*1024kB =
512kB
.....

Is it because the min_free_kbytes in /proc/sys/vm/min_free_kbytes is
configured to be 512? I tried to run the application by setting
/proc/sys/vm/min_free_kbytes to 256, but to no avail. I still got the
OOM-KILLER. Any help to aleviate the problem will be higly appreciated.

Thanks and anticipation,

~Abu.

-----Original Message-----
From: Jesper Juhl [mailto:[email protected]]
Sent: Friday, June 02, 2006 1:24 PM
To: Nick Piggin
Cc: Abu M. Muttalib; Martin J. Bligh; Paulo Marques;
[email protected]
Subject: Re: Page Allocation Failure, Why?? Bug in kernel??


On 02/06/06, Nick Piggin <[email protected]> wrote:
> Abu M. Muttalib wrote:
> > Hi,
> >
> > I repeat my question, the required no of pages are available, as shown
in
> > the dump produced by kernel, the request is not fulfilled. Its as
follows:
> >
> > DMA: 106*4kB 11*8kB 5*16kB 3*32kB 2*64kB 1*128kB 0*256kB 0*512kB
0*1024kB =
> > 944kB
> >
> > Why this is so??
>
> Because some are kept in "emergency pools" for allocators that cannot
> sleep trying to free up memory.
>
> Teach the sound driver to use smaller buffers or just insert it at boot
> and leave it inserted. Why are you removing it then reinserting it?
>

Or, if the driver just need 32 pages that *appear* to be contiguous
without actually having to be physically contiguous, then allocate the
space with vmalloc(). Not always possible ofcourse, but if it is for
Abu's use, then perhaps that could be a solution.

--
Jesper Juhl <[email protected]>
Don't top-post  http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please      http://www.expita.com/nomime.html

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux