Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753426AbbFHN6f (ORCPT ); Mon, 8 Jun 2015 09:58:35 -0400 Received: from cantor2.suse.de ([195.135.220.15]:52586 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753377AbbFHN5P (ORCPT ); Mon, 8 Jun 2015 09:57:15 -0400 From: Mel Gorman To: Linux-MM Cc: Rik van Riel , Johannes Weiner , Michal Hocko , LKML , Mel Gorman Subject: [PATCH 21/25] mm, page_alloc: Defer zlc_setup until it is known it is required Date: Mon, 8 Jun 2015 14:56:27 +0100 Message-Id: <1433771791-30567-22-git-send-email-mgorman@suse.de> X-Mailer: git-send-email 2.3.5 In-Reply-To: <1433771791-30567-1-git-send-email-mgorman@suse.de> References: <1433771791-30567-1-git-send-email-mgorman@suse.de> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1343 Lines: 43 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 --- 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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/