Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1430496 > unrolled thread

[PATCH] mm, vmscan: Make kswapd reclaim no more than needed

Started by"Hillf Danton" <hillf.zj@alibaba-inc.com>
First post2016-06-24 11:10 +0200
Last post2016-06-24 11:40 +0200
Articles 2 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] mm, vmscan: Make kswapd reclaim no more than needed "Hillf Danton" <hillf.zj@alibaba-inc.com> - 2016-06-24 11:10 +0200
    Re: [PATCH] mm, vmscan: Make kswapd reclaim no more than needed Mel Gorman <mgorman@techsingularity.net> - 2016-06-24 11:40 +0200

#1430496 — [PATCH] mm, vmscan: Make kswapd reclaim no more than needed

From"Hillf Danton" <hillf.zj@alibaba-inc.com>
Date2016-06-24 11:10 +0200
Subject[PATCH] mm, vmscan: Make kswapd reclaim no more than needed
Message-ID<rNvhF-6a1-67@gated-at.bofh.it>
We stop reclaiming pages if any eligible zone is balanced.

Signed-off-by: Hillf Danton <hillf.zj@alibaba-inc.com>
---

--- a/mm/vmscan.c	Thu Jun 23 17:56:34 2016
+++ b/mm/vmscan.c	Fri Jun 24 16:45:58 2016
@@ -3185,15 +3185,10 @@ static int balance_pgdat(pg_data_t *pgda
 			if (!populated_zone(zone))
 				continue;
 
-			if (!zone_balanced(zone, sc.order, classzone_idx)) {
-				classzone_idx = i;
-				break;
-			}
+			if (zone_balanced(zone, sc.order, classzone_idx))
+				goto out;
 		}
 
-		if (i < 0)
-			goto out;
-
 		/*
 		 * Do some background aging of the anon list, to give
 		 * pages a chance to be referenced before reclaiming. All
@@ -3236,19 +3231,6 @@ static int balance_pgdat(pg_data_t *pgda
 		/* Check if kswapd should be suspending */
 		if (try_to_freeze() || kthread_should_stop())
 			break;
-
-		/*
-		 * Stop reclaiming if any eligible zone is balanced and clear
-		 * node writeback or congested.
-		 */
-		for (i = 0; i <= classzone_idx; i++) {
-			zone = pgdat->node_zones + i;
-			if (!populated_zone(zone))
-				continue;
-
-			if (zone_balanced(zone, sc.order, classzone_idx))
-				goto out;
-		}
 
 		/*
 		 * Raise priority if scanning rate is too low or there was no
--

[toc] | [next] | [standalone]


#1430522

FromMel Gorman <mgorman@techsingularity.net>
Date2016-06-24 11:40 +0200
Message-ID<rNvKF-6jN-1@gated-at.bofh.it>
In reply to#1430496
On Fri, Jun 24, 2016 at 04:59:55PM +0800, Hillf Danton wrote:
> We stop reclaiming pages if any eligible zone is balanced.
> 
> Signed-off-by: Hillf Danton <hillf.zj@alibaba-inc.com>

wakeup_kswapd avoids waking kswapd in the first place if there are balanced
zones. The current code will do at least one reclaim pass if the situation
changes between the wakeup request and kswapd actually waking so some
progress will be made. The risk for strict enforcement is that small low
zones like DMA will be quickly generally balanced but only for very short
periods of time and kswapd will fall behind. It *shouldn't* matter as
the pages allocated from DMA will remain resident until the full node
LRU cycles through but it's a possibility.

I'll test the patch and make sure kswapd still reclaims at the correct
rate. Did you this test yourself with any reclaim intensive workload to
see if kswapd fell behind forcing more stalls in direct reclaim?

-- 
Mel Gorman
SUSE Labs

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web