From: Zhaoyang Huang <zhaoyang.huang@xxxxxxxxxx> For the kswapd only reclaiming, there is no chance to try again on this group while direct reclaim has. fix it by judging gfp flag. Signed-off-by: Zhaoyang Huang <zhaoyang.huang@xxxxxxxxxx> --- mm/vmscan.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mm/vmscan.c b/mm/vmscan.c index 74296c2..41f5776 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -2704,7 +2704,8 @@ static void get_scan_count(struct lruvec *lruvec, struct scan_control *sc, unsigned long protection; /* memory.low scaling, make sure we retry before OOM */ - if (!sc->memcg_low_reclaim && low > min) { + if (!sc->memcg_low_reclaim && low > min + && sc->gfp_mask & __GFP_DIRECT_RECLAIM) { protection = low; sc->memcg_low_skipped = 1; } else { -- 1.9.1