Messages in this thread | | | From | KOSAKI Motohiro <> | Subject | Re: [patch] mm: update alloc_flags after oom killer has been called | Date | Thu, 16 Jul 2009 16:39:58 +0900 (JST) |
| |
> It is possible for the oom killer to select current as the task to kill. > When this happens, alloc_flags needs to be updated accordingly to set > ALLOC_NO_WATERMARKS so the subsequent allocation attempt may use memory > reserves as the result of its thread having TIF_MEMDIE set if the > allocation is not __GFP_NOMEMALLOC. > > Acked-by: Mel Gorman <mel@csn.ul.ie> > Signed-off-by: David Rientjes <rientjes@google.com> > --- > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -1756,6 +1756,7 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order, > > wake_all_kswapd(order, zonelist, high_zoneidx); > > +restart: > /* > * OK, we're below the kswapd watermark and have kicked background > * reclaim. Now things get more complex, so set up alloc_flags according > @@ -1763,7 +1764,6 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order, > */ > alloc_flags = gfp_to_alloc_flags(gfp_mask); > > -restart: > /* This is the last chance, in general, before the goto nopage. */ > page = get_page_from_freelist(gfp_mask, nodemask, order, zonelist, > high_zoneidx, alloc_flags & ~ALLOC_NO_WATERMARKS,
Looks good. thanks. Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
| |