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. Fix this by not passing the reclaimed slab count to vmpressure, with the assumption that vmpressure should show the actual pressure on LRU which is now diluted by adding reclaimed slab without a corresponding scanned value. Signed-off-by: Vinayak Menon <vinmenon@xxxxxxxxxxxxxx> --- 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 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>