From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751628AbdAYLlB (ORCPT ); Wed, 25 Jan 2017 06:41:01 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:48200 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751373AbdAYLlA (ORCPT ); Wed, 25 Jan 2017 06:41:00 -0500 DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org A46CD607C3 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=vinmenon@codeaurora.org From: Vinayak Menon To: akpm@linux-foundation.org, hannes@cmpxchg.org, mgorman@techsingularity.net, vbabka@suse.cz, mhocko@suse.com, riel@redhat.com, vdavydov.dev@gmail.com, anton.vorontsov@linaro.org, minchan@kernel.org, shiraz.hashim@gmail.com Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Vinayak Menon Subject: [PATCH] mm: vmscan: do not pass reclaimed slab to vmpressure Date: Wed, 25 Jan 2017 17:08:38 +0530 Message-Id: <1485344318-6418-1-git-send-email-vinmenon@codeaurora.org> X-Mailer: git-send-email 1.8.2.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- 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