On Tue, 2017-01-24 at 15:49 +0800, Jia He wrote:sorry for the mistake, I will check what happened.
When there is no reclaimable pages in the zone, even the zone is
not balanced, we let kswapd go sleeping. That is prepare_kswapd_sleep
will return true in this case.
Signed-off-by: Jia He <hejianet@xxxxxxxxx>
---
mm/vmscan.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 7396a0a..54445e2 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -3140,7 +3140,8 @@ static bool prepare_kswapd_sleep(pg_data_t
*pgdat, int order, int classzone_idx)
if (!managed_zone(zone))
continue;
- if (!zone_balanced(zone, order, classzone_idx))
+ if (!zone_balanced(zone, order, classzone_idx)
+ && !zone_reclaimable_pages(zone))
return false;
}
This patch does the opposite of what your changelog
says. The above keeps kswapd running forever if
the zone is not balanced, and there are no reclaimable
pages.