Messages in this thread |  | | From | "Abu M. Muttalib" <> | | Subject | RE: Page Allocation Failure, Why?? Bug in kernel?? | | Date | Fri, 2 Jun 2006 14:11:30 +0530 |
| |
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:jesper.juhl@gmail.com] Sent: Friday, June 02, 2006 1:24 PM To: Nick Piggin Cc: Abu M. Muttalib; Martin J. Bligh; Paulo Marques; linux-kernel@vger.kernel.org Subject: Re: Page Allocation Failure, Why?? Bug in kernel??
On 02/06/06, Nick Piggin <nickpiggin@yahoo.com.au> 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 <jesper.juhl@gmail.com> 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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |