On Tue 16-12-14 21:13:02, Johannes Weiner wrote: [...] > From 45362d1920340716ef58bf1024d9674b5dfa809e Mon Sep 17 00:00:00 2001 > From: Johannes Weiner <hannes@xxxxxxxxxxx> > Date: Tue, 16 Dec 2014 21:04:24 -0500 > Subject: [patch] mm: page_alloc: embed OOM killing naturally into allocation > slowpath fix > > When retrying the allocation after potentially invoking OOM, make sure > the alloc flags are recalculated, as they have to consider TIF_MEMDIE. > > Restore the original restart label, but rename it to 'retry' to match > the should_alloc_retry() it depends on. > > Signed-off-by: Johannes Weiner <hannes@xxxxxxxxxxx> Missed that too. Well spotted! Acked-by: Michal Hocko <mhocko@xxxxxxx> > --- > mm/page_alloc.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 83ec725aec36..e8f5997c557c 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -2673,6 +2673,7 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order, > (gfp_mask & GFP_THISNODE) == GFP_THISNODE) > goto nopage; > > +retry: > if (!(gfp_mask & __GFP_NO_KSWAPD)) > wake_all_kswapds(order, zonelist, high_zoneidx, > preferred_zone, nodemask); > @@ -2695,7 +2696,6 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order, > classzone_idx = zonelist_zone_idx(preferred_zoneref); > } > > -rebalance: > /* 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, > @@ -2823,7 +2823,7 @@ rebalance: > } > /* Wait for some write requests to complete then retry */ > wait_iff_congested(preferred_zone, BLK_RW_ASYNC, HZ/50); > - goto rebalance; > + goto retry; > } else { > /* > * High-order allocations do not necessarily loop after > -- > 2.1.3 > > -- > 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> -- Michal Hocko SUSE Labs -- 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>