Re: [PATCH] mm, memcg: reset low limit during memcg offlining

From: Tejun Heo
Date: Wed Jul 26 2017 - 08:06:59 EST


Hello, Vladimir.

On Wed, Jul 26, 2017 at 11:30:17AM +0300, Vladimir Davydov wrote:
> > As I understand, css_reset() callback is intended to _completely_ disable all
> > limits, as if there were no cgroup at all.
>
> But that's exactly what cgroup offline is: deletion of a cgroup as if it
> never existed. The fact that we leave the zombie dangling until all
> pages charged to the cgroup are gone is an implementation detail. IIRC
> we would "reparent" those charges and delete the mem_cgroup right away
> if it were not inherently racy.

That may be true for memcg but not in general. Think about writeback
IOs servicing dirty pages of a removed cgroup. Removing a cgroup
shouldn't grant it more resources than when it was alive and changing
the membership to the parent will break that. For memcg, they seem
the same just because no new major consumption can be generated after
removal.

> The user can't tweak limits of an offline cgroup, because the cgroup
> directory no longer exist. So IMHO resetting all limits is reasonable.
> If you want to keep the cgroup limits effective, you shouldn't have
> deleted it in the first place, I suppose.

I don't think that's the direction we wanna go. Granting more
resources on removal is surprising.

Thanks.

--
tejun