linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] mm/mglru: only clear kswapd_failures if reclaimable
@ 2024-10-14 22:12 Wei Xu
  2024-10-14 23:25 ` Andrew Morton
  2024-10-16  4:56 ` Yu Zhao
  0 siblings, 2 replies; 5+ messages in thread
From: Wei Xu @ 2024-10-14 22:12 UTC (permalink / raw)
  To: Yu Zhao; +Cc: Andrew Morton, Axel Rasmussen, linux-mm, linux-kernel, Wei Xu

lru_gen_shrink_node() unconditionally clears kswapd_failures, which
can prevent kswapd from sleeping and cause 100% kswapd cpu usage even
when kswapd repeatedly fails to make progress in reclaim.

Only clear kswap_failures in lru_gen_shrink_node() if reclaim makes
some progress, similar to shrink_node().

Fixes: e4dde56cd208 ("mm: multi-gen LRU: per-node lru_gen_folio lists")
Signed-off-by: Wei Xu <weixugc@google.com>
---
 mm/vmscan.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mm/vmscan.c b/mm/vmscan.c
index 50dc06d55b1d..9d1e1c4e383d 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -4970,8 +4970,8 @@ static void lru_gen_shrink_node(struct pglist_data *pgdat, struct scan_control *
 
 	blk_finish_plug(&plug);
 done:
-	/* kswapd should never fail */
-	pgdat->kswapd_failures = 0;
+	if (sc->nr_reclaimed > reclaimed)
+		pgdat->kswapd_failures = 0;
 }
 
 /******************************************************************************
-- 
2.47.0.rc1.288.g06298d1525-goog



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-10-16  5:29 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-10-14 22:12 [PATCH 1/2] mm/mglru: only clear kswapd_failures if reclaimable Wei Xu
2024-10-14 23:25 ` Andrew Morton
2024-10-14 23:41   ` Wei Xu
2024-10-16  4:56 ` Yu Zhao
2024-10-16  5:29   ` Wei Xu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox