Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

From: Michal Hocko
Date: Fri Apr 13 2018 - 04:56:02 EST


On Thu 12-04-18 17:52:04, Kirill Tkhai wrote:
[...]
> @@ -4471,6 +4477,7 @@ mem_cgroup_css_alloc(struct cgroup_subsys_state *parent_css)
>
> return &memcg->css;
> fail:
> + mem_cgroup_id_remove(memcg);
> mem_cgroup_free(memcg);
> return ERR_PTR(-ENOMEM);
> }

The only path which jumps to fail: here (in the current mmotm tree) is
error = memcg_online_kmem(memcg);
if (error)
goto fail;

AFAICS and the only failure path in memcg_online_kmem
memcg_id = memcg_alloc_cache_id();
if (memcg_id < 0)
return memcg_id;

I am not entirely clear on memcg_alloc_cache_id but it seems we do clean
up properly. Or am I missing something?
--
Michal Hocko
SUSE Labs