On Tue, Feb 09, 2021 at 09:46:43AM -0800, Yang Shi wrote: > 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 <shy828301@xxxxxxxxx> > --- > 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? Otherwise the patch looks good to me. Thanks!