2023-08-07 10:56:22

by Hyeongtak Ji

[permalink] [raw]
Subject: [PATCH] mm/vmscan: consider previously reclaimed pages in shrink_lruvec()

shrink_lruvec() currently ignores previously reclaimed pages in
scan_control->nr_reclaimed. This can lead shrink_lruvec() to reclaiming
more pages than expected.

This patch fixes shrink_lruvec() to take into account the previously
reclaimed pages.

Signed-off-by: Hyeongtak Ji <[email protected]>
---
mm/vmscan.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/vmscan.c b/mm/vmscan.c
index 1080209a568b..315da4ae16f1 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -6261,7 +6261,7 @@ static void shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc)
unsigned long nr_to_scan;
enum lru_list lru;
unsigned long nr_reclaimed = 0;
- unsigned long nr_to_reclaim = sc->nr_to_reclaim;
+ unsigned long nr_to_reclaim = sc->nr_to_reclaim - sc->nr_reclaimed;
bool proportional_reclaim;
struct blk_plug plug;

--
2.7.4