On 02/25/2014 03:27 PM, Johannes Weiner wrote: > Jan Stancek reports manual page migration encountering allocation > failures after some pages when there is still plenty of memory free, > and bisected the problem down to 81c0a2bb515f ("mm: page_alloc: fair > zone allocator policy"). > > The problem is that page migration uses GFP_THISNODE and this makes > the page allocator bail out before entering the slowpath entirely, > without resetting the zone round-robin batches. A string of such > allocations will fail long before the node's free memory is exhausted. > > GFP_THISNODE is a special flag for callsites that implement their own > clever node fallback and so no direct reclaim should be invoked. But > if the allocations fail, the fair allocation batches should still be > reset, and if the node is full, it should be aged in the background. > > Make GFP_THISNODE wake up kswapd and reset the zone batches, but bail > out before entering direct reclaim to not stall the allocating task. > > Reported-by: Jan Stancek <jstancek@xxxxxxxxxx> > Signed-off-by: Johannes Weiner <hannes@xxxxxxxxxxx> > Cc: <stable@xxxxxxxxxx> # 3.12+ Acked-by: Rik van Riel <riel@xxxxxxxxxx> -- All rights reversed -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>