Messages in this thread | | | Date | Tue, 25 Feb 2014 15:36:47 -0500 | From | Rik van Riel <> | Subject | Re: [patch 1/2] mm: page_alloc: reset aging cycle with GFP_THISNODE |
| |
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@redhat.com> > Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> > Cc: <stable@kernel.org> # 3.12+
Acked-by: Rik van Riel <riel@redhat.com>
-- All rights reversed
| |