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 <hyeongtak.ji@xxxxxx> --- 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