lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 25 Jan 2017 17:08:38 +0530 From: Vinayak Menon <vinmenon@...eaurora.org> To: akpm@...ux-foundation.org, hannes@...xchg.org, mgorman@...hsingularity.net, vbabka@...e.cz, mhocko@...e.com, riel@...hat.com, vdavydov.dev@...il.com, anton.vorontsov@...aro.org, minchan@...nel.org, shiraz.hashim@...il.com Cc: linux-mm@...ck.org, linux-kernel@...r.kernel.org, Vinayak Menon <vinmenon@...eaurora.org> Subject: [PATCH] mm: vmscan: do not pass reclaimed slab to vmpressure 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@...eaurora.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
Powered by blists - more mailing lists