Re: [v7 PATCH 09/12] mm: vmscan: use per memcg nr_deferred of shrinker
From: Yang Shi <hidden>
Date: 2021-02-10 01:54:29
Also in:
linux-mm, lkml
From: Yang Shi <hidden>
Date: 2021-02-10 01:54:29
Also in:
linux-mm, lkml
On Tue, Feb 9, 2021 at 5:27 PM Roman Gushchin [off-list ref] wrote:
On Tue, Feb 09, 2021 at 09:46:43AM -0800, Yang Shi wrote:quoted
Use per memcg's nr_deferred for memcg aware shrinkers. The shrinker's nr_deferred will be used in the following cases: 1. Non memcg aware shrinkers 2. !CONFIG_MEMCG 3. memcg is disabled by boot parameter Signed-off-by: Yang Shi <redacted> --- mm/vmscan.c | 78 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 66 insertions(+), 12 deletions(-)diff --git a/mm/vmscan.c b/mm/vmscan.c index d4b030a0b2a9..748aa6e90f83 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c@@ -368,6 +368,24 @@ static void unregister_memcg_shrinker(struct shrinker *shrinker) up_write(&shrinker_rwsem); } +static long count_nr_deferred_memcg(int nid, struct shrinker *shrinker, + struct mem_cgroup *memcg)"Count" is not associated with xchg() semantics in my head, but I don't know what's the better version. Maybe steal or pop?
It is used to retrieve the nr_deferred value. I don't think "steal" or "pop" helps understand. Actually "count" is borrowed from count_objects() method of shrinker.
Otherwise the patch looks good to me. Thanks!