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