Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8830ab9a authored by Johannes Weiner's avatar Johannes Weiner Committed by Vinayak Menon
Browse files

mm: vmscan: remove old flusher wakeup from direct reclaim path

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.

Change-Id: I093ab8056e9915b5faca8c3882529cab8278c3ea
Link: http://lkml.kernel.org/r/20170123181641.23938-4-hannes@cmpxchg.org


Signed-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
Acked-by: default avatarMinchan Kim <minchan@kernel.org>
Acked-by: default avatarMichal Hocko <mhocko@suse.com>
Acked-by: default avatarHillf Danton <hillf.zj@alibaba-inc.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Rik van Riel <riel@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Git-Commit: bbef938429f5b201f9972f399a04f01af1934cc2
Git-Repo: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git


Signed-off-by: default avatarVinayak Menon <vinmenon@codeaurora.org>
parent 6098c674
Loading
Loading
Loading
Loading
+0 −17
Original line number Original line Diff line number Diff line
@@ -2821,8 +2821,6 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist,
					  struct scan_control *sc)
					  struct scan_control *sc)
{
{
	int initial_priority = sc->priority;
	int initial_priority = sc->priority;
	unsigned long total_scanned = 0;
	unsigned long writeback_threshold;
retry:
retry:
	delayacct_freepages_start();
	delayacct_freepages_start();


@@ -2835,7 +2833,6 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist,
		sc->nr_scanned = 0;
		sc->nr_scanned = 0;
		shrink_zones(zonelist, sc);
		shrink_zones(zonelist, sc);


		total_scanned += sc->nr_scanned;
		if (sc->nr_reclaimed >= sc->nr_to_reclaim)
		if (sc->nr_reclaimed >= sc->nr_to_reclaim)
			break;
			break;


@@ -2848,20 +2845,6 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist,
		 */
		 */
		if (sc->priority < DEF_PRIORITY - 2)
		if (sc->priority < DEF_PRIORITY - 2)
			sc->may_writepage = 1;
			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);
	} while (--sc->priority >= 0);


	delayacct_freepages_end();
	delayacct_freepages_end();