Thread (60 messages) 60 messages, 11 authors, 2011-11-04

[Linaro-mm-sig] [PATCHv16 0/9] Contiguous Memory Allocator

From: Maxime Coquelin <hidden>
Date: 2011-10-11 11:29:58
Also in: linux-mm

On 10/11/2011 12:50 PM, Marek Szyprowski wrote:
Hello,

On Tuesday, October 11, 2011 9:30 AM Maxime Coquelin wrote:
quoted
On 10/11/2011 09:17 AM, Marek Szyprowski wrote:
quoted
On Monday, October 10, 2011 2:08 PM Maxime Coquelin wrote:

       During our stress tests, we encountered some problems :

       1) Contiguous allocation lockup:
           When system RAM is full of Anon pages, if we try to allocate a
contiguous buffer greater than the min_free value, we face a
dma_alloc_from_contiguous lockup.
           The expected result would be dma_alloc_from_contiguous() to fail.
           The problem is reproduced systematically on our side.
Thanks for the report. Do you use Android's lowmemorykiller? I haven't
tested CMA on Android kernel yet. I have no idea how it will interfere
with Android patches.
The software used for this test (v16) is a generic 3.0 Kernel and a
minimal filesystem using Busybox.
I'm really surprised. Could you elaborate a bit how to trigger this issue?
At system startup, I drop caches (sync && echo 3 > 
/proc/sys/vm/drop_caches) and check how much memory is free.
For example, in my case, only 15MB is used on the 270MB available on the 
system, so I got 255MB of free memory. Note that the min_free is 4MB in 
my case.
In userspace, I allocate 230MB using malloc(), the free memory is now 25MB.
Finaly, I ask for a contiguous allocation of 64MB using CMA, the result 
is a lockup in dma_alloc_from_contiguous().
I've did several tests and I never get a lockup. Allocation failed from time
to time though.
When it succeed, what is the behaviour on your side? Is the OOM triggered?

Regards,
Maxime
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help