Re: [PATCH RFC 3/3] mm, vmscan: correct prepare_kswapd_sleep return value

From: hejianet
Date: Tue Jan 24 2017 - 21:24:38 EST

On 25/01/2017 6:01 AM, Rik van Riel wrote:
On Tue, 2017-01-24 at 15:49 +0800, Jia He wrote:
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))

- 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
sorry for the mistake, I will check what happened.
I tested in my local system.