From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752072AbdBBTWD (ORCPT ); Thu, 2 Feb 2017 14:22:03 -0500 Received: from gum.cmpxchg.org ([85.214.110.215]:41164 "EHLO gum.cmpxchg.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751201AbdBBTUd (ORCPT ); Thu, 2 Feb 2017 14:20:33 -0500 From: Johannes Weiner To: Andrew Morton Cc: Mel Gorman , Michal Hocko , Minchan Kim , Rik van Riel , Hillf Danton , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/7] mm: vmscan: remove old flusher wakeup from direct reclaim path Date: Thu, 2 Feb 2017 14:19:54 -0500 Message-Id: <20170202191957.22872-5-hannes@cmpxchg.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170202191957.22872-1-hannes@cmpxchg.org> References: <20170202191957.22872-1-hannes@cmpxchg.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Direct reclaim has been replaced by kswapd reclaim in pretty much all common memory pressure situations, so this code most likely doesn't accomplish the described effect anymore. The previous patch wakes up flushers for all reclaimers when we encounter dirty pages at the tail end of the LRU. Remove the crufty old direct reclaim invocation. Link: http://lkml.kernel.org/r/20170123181641.23938-4-hannes@cmpxchg.org Signed-off-by: Johannes Weiner Acked-by: Minchan Kim Acked-by: Michal Hocko Acked-by: Hillf Danton Cc: Mel Gorman Cc: Rik van Riel Signed-off-by: Andrew Morton --- mm/vmscan.c | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/mm/vmscan.c b/mm/vmscan.c index 83c92b866afe..ce2ee8331414 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -2757,8 +2757,6 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist, struct scan_control *sc) { int initial_priority = sc->priority; - unsigned long total_scanned = 0; - unsigned long writeback_threshold; retry: delayacct_freepages_start(); @@ -2771,7 +2769,6 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist, sc->nr_scanned = 0; shrink_zones(zonelist, sc); - total_scanned += sc->nr_scanned; if (sc->nr_reclaimed >= sc->nr_to_reclaim) break; @@ -2784,20 +2781,6 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist, */ if (sc->priority < DEF_PRIORITY - 2) sc->may_writepage = 1; - - /* - * Try to write back as many pages as we just scanned. This - * tends to cause slow streaming writers to write data to the - * disk smoothly, at the dirtying rate, which is nice. But - * that's undesirable in laptop mode, where we *want* lumpy - * writeout. So in laptop mode, write out the whole world. - */ - writeback_threshold = sc->nr_to_reclaim + sc->nr_to_reclaim / 2; - if (total_scanned > writeback_threshold) { - wakeup_flusher_threads(laptop_mode ? 0 : total_scanned, - WB_REASON_VMSCAN); - sc->may_writepage = 1; - } } while (--sc->priority >= 0); delayacct_freepages_end(); -- 2.11.0