On 02/06/2017 05:17 PM, Mel Gorman wrote:
Thanks,
Shantanu
From 46f2e4b02ac263bf50d69cdab3bcbd7bcdea7415 Mon Sep 17 00:00:00 2001
From: Shantanu Goel <sgoel01@xxxxxxxxx>
Date: Sat, 4 Feb 2017 19:07:53 -0500
Subject: [PATCH] vmscan: fix zone balance check in prepare_kswapd_sleep
The check in prepare_kswapd_sleep needs to match the one in balance_pgdat
since the latter will return as soon as any one of the zones in the
classzone is above the watermark. This is specially important for
higher order allocations since balance_pgdat will typically reset
the order to zero relying on compaction to create the higher order
pages. Without this patch, prepare_kswapd_sleep fails to wake up
kcompactd since the zone balance check fails.
Signed-off-by: Shantanu Goel <sgoel01@xxxxxxxxx>
I don't recall specifically why I made that change but I've no objections
to the patch so;
Acked-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
However, note that there is a slight risk that kswapd will sleep for a
short interval early due to a very small zone such as ZONE_DMA. If this
is a general problem then it'll manifest as less kswapd reclaim and more
direct reclaim. If it turns out this is an issue then a revert will not
be the right fix. Instead, all the checks for zone_balance will need to
account for the only balanced zone being a tiny percentage of memory in
the node.
Hopefully the lowmem reserves should take care of this in that case? They easily
make a low zone inaccessible even when fully free. Unless the small zone is high
one though, such as Normal zone on system with only 4GB memory, so most of it is
in DMA32.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>