[RFC PATCH] mm: have kswapd only reclaiming use min protection on memcg

From: Huangzhaoyang
Date: Wed Oct 27 2021 - 03:02:11 EST


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