On Mon, Oct 08, 2012 at 05:41:14PM +0200, Rabin Vincent wrote:It appears that when CMA is enabled, the zone watermarks are not properly
respected, leading to for example GFP_NOWAIT allocations getting access to the
high pools.
I ran the following test code which simply allocates pages with GFP_NOWAIT
until it fails, and then tries GFP_ATOMIC. Without CMA, the GFP_ATOMIC
allocation succeeds, with CMA, it fails too.
Good spot. By wrong zone_watermark_check, it can consume reserved memory pool.
Logs attached (includes my patch which prints the migration type in the failure
message http://marc.info/?l=linux-mm&m=134971041701306&w=2), taken on 3.6
kernel.
Fortunately, recently, Bart sent a patch about that.
http://marc.info/?l=linux-mm&m=134763299016693&w=2
Could you test above patches in your kernel?
You have to apply [2/4], [3/4], [4/4] and don't need [1/4].