[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180321145625.GA4780@bombadil.infradead.org>
Date: Wed, 21 Mar 2018 07:56:25 -0700
From: Matthew Wilcox <willy@...radead.org>
To: Kirill Tkhai <ktkhai@...tuozzo.com>
Cc: viro@...iv.linux.org.uk, hannes@...xchg.org, mhocko@...nel.org,
vdavydov.dev@...il.com, akpm@...ux-foundation.org,
tglx@...utronix.de, pombredanne@...b.com, stummala@...eaurora.org,
gregkh@...uxfoundation.org, sfr@...b.auug.org.au, guro@...com,
mka@...omium.org, penguin-kernel@...ove.SAKURA.ne.jp,
chris@...is-wilson.co.uk, longman@...hat.com, minchan@...nel.org,
hillf.zj@...baba-inc.com, ying.huang@...el.com,
mgorman@...hsingularity.net, shakeelb@...gle.com, jbacik@...com,
linux@...ck-us.net, linux-kernel@...r.kernel.org,
linux-mm@...ck.org
Subject: Re: [PATCH 03/10] mm: Assign memcg-aware shrinkers bitmap to memcg
On Wed, Mar 21, 2018 at 04:21:40PM +0300, Kirill Tkhai wrote:
> +++ b/include/linux/memcontrol.h
> @@ -151,6 +151,11 @@ struct mem_cgroup_thresholds {
> struct mem_cgroup_threshold_ary *spare;
> };
>
> +struct shrinkers_map {
> + struct rcu_head rcu;
> + unsigned long *map[0];
> +};
> +
> enum memcg_kmem_state {
> KMEM_NONE,
> KMEM_ALLOCATED,
> @@ -182,6 +187,9 @@ struct mem_cgroup {
> unsigned long low;
> unsigned long high;
>
> + /* Bitmap of shrinker ids suitable to call for this memcg */
> + struct shrinkers_map __rcu *shrinkers_map;
> +
> /* Range enforcement for interrupt charges */
> struct work_struct high_work;
>
Why use your own bitmap here? Why not use an IDA which can grow and
shrink automatically without you needing to play fun games with RCU?
Powered by blists - more mailing lists