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 <mgorman@xxxxxxx> --- 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, 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>