The patch titled Subject: mm: Use alloc_flags to record if kswapd can wake -fix has been added to the -mm tree. Its filename is mm-use-alloc_flags-to-record-if-kswapd-can-wake-fix.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/mm-use-alloc_flags-to-record-if-kswapd-can-wake-fix.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/mm-use-alloc_flags-to-record-if-kswapd-can-wake-fix.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx> Subject: mm: Use alloc_flags to record if kswapd can wake -fix Vlastimil Babka correctly pointed out that the ALLOC_KSWAPD flag needs to be applied in the !CONFIG_ZONE_DMA32 case. This is a fix for the mmotm path mm-use-alloc_flags-to-record-if-kswapd-can-wake.patch Link: http://lkml.kernel.org/r/20181126143503.GO23260@xxxxxxxxxxxxxxxxxxx Signed-off-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx> Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx> Cc: David Rientjes <rientjes@xxxxxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxxxxx> Cc: Vlastimil Babka <vbabka@xxxxxxx> Cc: Zi Yan <zi.yan@xxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- --- a/mm/page_alloc.c~mm-use-alloc_flags-to-record-if-kswapd-can-wake-fix +++ a/mm/page_alloc.c @@ -3392,7 +3392,6 @@ static bool zone_allows_reclaim(struct z } #endif /* CONFIG_NUMA */ -#ifdef CONFIG_ZONE_DMA32 /* * The restriction on ZONE_DMA32 as being a suitable zone to use to avoid * fragmentation is subtle. If the preferred zone was HIGHMEM then @@ -3409,6 +3408,7 @@ alloc_flags_nofragment(struct zone *zone if (gfp_mask & __GFP_KSWAPD_RECLAIM) alloc_flags |= ALLOC_KSWAPD; +#ifdef CONFIG_ZONE_DMA32 if (zone_idx(zone) != ZONE_NORMAL) goto out; @@ -3422,15 +3422,9 @@ alloc_flags_nofragment(struct zone *zone goto out; out: +#endif /* CONFIG_ZONE_DMA32 */ return alloc_flags; } -#else -static inline unsigned int -alloc_flags_nofragment(struct zone *zone, gfp_t gfp_mask) -{ - return 0; -} -#endif /* * get_page_from_freelist goes through the zonelist trying to allocate _ Patches currently in -mm which might be from mgorman@xxxxxxxxxxxxxxxxxxx are mm-page_alloc-spread-allocations-across-zones-before-introducing-fragmentation.patch mm-move-zone-watermark-accesses-behind-an-accessor.patch mm-use-alloc_flags-to-record-if-kswapd-can-wake.patch mm-use-alloc_flags-to-record-if-kswapd-can-wake-fix.patch mm-reclaim-small-amounts-of-memory-when-an-external-fragmentation-event-occurs.patch mm-stall-movable-allocations-until-kswapd-progresses-during-serious-external-fragmentation-event.patch