The zonelist cache (zlc) records if zone_reclaim() is necessary but it is setup before it is checked if zone_reclaim is even enabled. This patch defers the setup until after zone_reclaim is checked.
Signed-off-by: Mel Gorman <[email protected]> --- mm/page_alloc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 6b3a78420a5e..637b293cd5d1 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -2076,6 +2076,10 @@ zonelist_scan: if (alloc_flags & ALLOC_NO_WATERMARKS) goto try_this_zone; + if (zone_reclaim_mode == 0 || + !zone_allows_reclaim(ac->preferred_zone, zone)) + goto this_zone_full; + if (IS_ENABLED(CONFIG_NUMA) && !did_zlc_setup && nr_online_nodes > 1) { /* @@ -2088,10 +2092,6 @@ zonelist_scan: did_zlc_setup = 1; } - if (zone_reclaim_mode == 0 || - !zone_allows_reclaim(ac->preferred_zone, zone)) - goto this_zone_full; - /* * As we may have just activated ZLC, check if the first * eligible zone has failed zone_reclaim recently. -- 2.3.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

