From: Johannes Weiner <hannes@cmpxchg.org> To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-block@vger.kernel.org, cgroups@vger.kernel.org Cc: Ingo Molnar <mingo@redhat.com>, Peter Zijlstra <peterz@infradead.org>, Andrew Morton <akpm@linuxfoundation.org>, Tejun Heo <tj@kernel.org>, Balbir Singh <bsingharora@gmail.com>, Mike Galbraith <efault@gmx.de>, Oliver Yang <yangoliver@me.com>, Shakeel Butt <shakeelb@google.com>, xxx xxx <x.qendo@gmail.com>, Taras Kondratiuk <takondra@cisco.com>, Daniel Walker <danielwa@cisco.com>, Vinayak Menon <vinmenon@codeaurora.org>, Ruslan Ruslichenko <rruslich@cisco.com>, kernel-team@fb.com Subject: [PATCH 1/7] mm: workingset: don't drop refault information prematurely Date: Mon, 7 May 2018 17:01:29 -0400 [thread overview] Message-ID: <20180507210135.1823-2-hannes@cmpxchg.org> (raw) In-Reply-To: <20180507210135.1823-1-hannes@cmpxchg.org> From: Johannes Weiner <jweiner@fb.com> If we just keep enough refault information to match the CURRENT page cache during reclaim time, we could lose a lot of events when there is only a temporary spike in non-cache memory consumption that pushes out all the cache. Once cache comes back, we won't see those refaults. They might not be actionable for LRU aging, but we want to know about them for measuring memory pressure. Signed-off-by: Johannes Weiner <jweiner@fb.com> --- mm/workingset.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/mm/workingset.c b/mm/workingset.c index 40ee02c83978..53759a3cf99a 100644 --- a/mm/workingset.c +++ b/mm/workingset.c @@ -364,7 +364,7 @@ static unsigned long count_shadow_nodes(struct shrinker *shrinker, { unsigned long max_nodes; unsigned long nodes; - unsigned long cache; + unsigned long pages; /* list_lru lock nests inside the IRQ-safe i_pages lock */ local_irq_disable(); @@ -393,14 +393,14 @@ static unsigned long count_shadow_nodes(struct shrinker *shrinker, * * PAGE_SIZE / radix_tree_nodes / node_entries * 8 / PAGE_SIZE */ - if (sc->memcg) { - cache = mem_cgroup_node_nr_lru_pages(sc->memcg, sc->nid, - LRU_ALL_FILE); - } else { - cache = node_page_state(NODE_DATA(sc->nid), NR_ACTIVE_FILE) + - node_page_state(NODE_DATA(sc->nid), NR_INACTIVE_FILE); - } - max_nodes = cache >> (RADIX_TREE_MAP_SHIFT - 3); +#ifdef CONFIG_MEMCG + if (sc->memcg) + pages = page_counter_read(&sc->memcg->memory); + else +#endif + pages = node_present_pages(sc->nid); + + max_nodes = pages >> (RADIX_TREE_MAP_SHIFT - 3); if (nodes <= max_nodes) return 0; -- 2.17.0
next prev parent reply other threads:[~2018-05-07 21:01 UTC|newest] Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-05-07 21:01 [PATCH 0/7] psi: pressure stall information for CPU, memory, and IO Johannes Weiner 2018-05-07 21:01 ` Johannes Weiner [this message] 2018-05-07 21:01 ` [PATCH 2/7] mm: workingset: tell cache transitions from workingset thrashing Johannes Weiner 2018-05-07 21:01 ` [PATCH 3/7] delayacct: track delays from thrashing cache pages Johannes Weiner 2018-05-07 21:01 ` [PATCH 4/7] sched: loadavg: consolidate LOAD_INT, LOAD_FRAC, CALC_LOAD Johannes Weiner 2018-05-07 21:01 ` [PATCH 5/7] sched: loadavg: make calc_load_n() public Johannes Weiner 2018-05-09 9:49 ` Peter Zijlstra 2018-05-10 13:46 ` Johannes Weiner 2018-05-07 21:01 ` [PATCH 6/7] psi: pressure stall information for CPU, memory, and IO Johannes Weiner 2018-05-08 0:42 ` Randy Dunlap 2018-05-08 14:06 ` Johannes Weiner 2018-05-08 1:35 ` kbuild test robot 2018-05-08 3:04 ` kbuild test robot 2018-05-08 14:05 ` Johannes Weiner 2018-05-09 9:59 ` Peter Zijlstra 2018-05-10 13:49 ` Johannes Weiner 2018-05-09 10:04 ` Peter Zijlstra 2018-05-10 14:10 ` Johannes Weiner 2018-05-09 10:05 ` Peter Zijlstra 2018-05-10 14:13 ` Johannes Weiner 2018-05-09 10:14 ` Peter Zijlstra 2018-05-10 14:18 ` Johannes Weiner 2018-05-09 10:21 ` Peter Zijlstra 2018-05-10 14:24 ` Johannes Weiner 2018-05-09 10:26 ` Peter Zijlstra 2018-05-09 10:46 ` Peter Zijlstra 2018-05-09 11:38 ` Peter Zijlstra 2018-05-10 13:41 ` Johannes Weiner 2018-05-14 8:33 ` Peter Zijlstra 2018-05-09 10:55 ` Peter Zijlstra 2018-05-09 11:03 ` Vinayak Menon 2018-05-23 13:17 ` Johannes Weiner 2018-05-23 13:19 ` Vinayak Menon 2018-06-07 0:46 ` Suren Baghdasaryan 2018-05-07 21:01 ` [PATCH 7/7] psi: cgroup support Johannes Weiner 2018-05-09 11:07 ` Peter Zijlstra 2018-05-10 14:49 ` Johannes Weiner 2018-05-14 15:39 ` [PATCH 0/7] psi: pressure stall information for CPU, memory, and IO Christopher Lameter 2018-05-14 17:35 ` Bart Van Assche 2018-05-14 18:55 ` Johannes Weiner 2018-05-14 20:15 ` Christopher Lameter 2018-05-26 0:29 ` Suren Baghdasaryan 2018-05-29 18:16 ` Johannes Weiner 2018-05-30 23:32 ` Suren Baghdasaryan
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20180507210135.1823-2-hannes@cmpxchg.org \ --to=hannes@cmpxchg.org \ --cc=akpm@linuxfoundation.org \ --cc=bsingharora@gmail.com \ --cc=cgroups@vger.kernel.org \ --cc=danielwa@cisco.com \ --cc=efault@gmx.de \ --cc=kernel-team@fb.com \ --cc=linux-block@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mingo@redhat.com \ --cc=peterz@infradead.org \ --cc=rruslich@cisco.com \ --cc=shakeelb@google.com \ --cc=takondra@cisco.com \ --cc=tj@kernel.org \ --cc=vinmenon@codeaurora.org \ --cc=x.qendo@gmail.com \ --cc=yangoliver@me.com \ --subject='Re: [PATCH 1/7] mm: workingset: don'\''t drop refault information prematurely' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.