linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2 v2] mm: vmscan: do not pass reclaimed slab to vmpressure
@ 2017-01-27  8:13 Vinayak Menon
  2017-01-27  8:13 ` [PATCH 2/2] mm: vmpressure: fix sending wrong events on underflow Vinayak Menon
                   ` (2 more replies)
  0 siblings, 3 replies; 18+ messages in thread
From: Vinayak Menon @ 2017-01-27  8:13 UTC (permalink / raw)
  To: akpm, hannes, mgorman, vbabka, mhocko, riel, vdavydov.dev,
	anton.vorontsov, minchan, shashim
  Cc: linux-mm, linux-kernel, Vinayak Menon

It is noticed that during a global reclaim the memory
reclaimed via shrinking the slabs can sometimes result
in reclaimed pages being greater than the scanned pages
in shrink_node. When this is passed to vmpressure, the
unsigned arithmetic results in the pressure value to be
huge, thus resulting in a critical event being sent to
root cgroup. While this can be fixed by underflow checks
in vmpressure, adding reclaimed slab without a corresponding
increment of nr_scanned results in incorrect vmpressure
reporting. So do not consider reclaimed slab pages in
vmpressure calculation.

Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
---
 mm/vmscan.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/mm/vmscan.c b/mm/vmscan.c
index 947ab6f..37c4486 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -2594,16 +2594,16 @@ static bool shrink_node(pg_data_t *pgdat, struct scan_control *sc)
 				    sc->nr_scanned - nr_scanned,
 				    node_lru_pages);
 
-		if (reclaim_state) {
-			sc->nr_reclaimed += reclaim_state->reclaimed_slab;
-			reclaim_state->reclaimed_slab = 0;
-		}
-
 		/* Record the subtree's reclaim efficiency */
 		vmpressure(sc->gfp_mask, sc->target_mem_cgroup, true,
 			   sc->nr_scanned - nr_scanned,
 			   sc->nr_reclaimed - nr_reclaimed);
 
+		if (reclaim_state) {
+			sc->nr_reclaimed += reclaim_state->reclaimed_slab;
+			reclaim_state->reclaimed_slab = 0;
+		}
+
 		if (sc->nr_reclaimed - nr_reclaimed)
 			reclaimable = true;
 
-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a
member of the Code Aurora Forum, hosted by The Linux Foundation

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

end of thread, other threads:[~2017-02-06 11:31 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-27  8:13 [PATCH 1/2 v2] mm: vmscan: do not pass reclaimed slab to vmpressure Vinayak Menon
2017-01-27  8:13 ` [PATCH 2/2] mm: vmpressure: fix sending wrong events on underflow Vinayak Menon
2017-01-30 23:58   ` Minchan Kim
2017-01-30 23:56 ` [PATCH 1/2 v2] mm: vmscan: do not pass reclaimed slab to vmpressure Minchan Kim
2017-01-31  7:48   ` vinayak menon
2017-01-31  9:02 ` [PATCH 1/2 v3] " Vinayak Menon
2017-02-01  6:12   ` Minchan Kim
2017-02-02 10:44   ` Michal Hocko
2017-02-02 10:48     ` Michal Hocko
2017-02-02 11:25       ` vinayak menon
2017-02-02 11:52         ` Michal Hocko
2017-02-02 15:30           ` vinayak menon
2017-02-02 16:01             ` Michal Hocko
2017-02-03  5:26               ` vinayak menon
2017-02-03 14:59                 ` Michal Hocko
2017-02-06 11:31                   ` vinayak menon
2017-02-02 11:28     ` vinayak menon
2017-02-03  6:17     ` Minchan Kim

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).