Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1430496 > unrolled thread
| Started by | "Hillf Danton" <hillf.zj@alibaba-inc.com> |
|---|---|
| First post | 2016-06-24 11:10 +0200 |
| Last post | 2016-06-24 11:40 +0200 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
[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
| From | "Hillf Danton" <hillf.zj@alibaba-inc.com> |
|---|---|
| Date | 2016-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]
| From | Mel Gorman <mgorman@techsingularity.net> |
|---|---|
| Date | 2016-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