Re: [PATCH v3 4/7] cgroup: cgroup v2 freezer

From: Roman Gushchin
Date: Tue Nov 20 2018 - 12:39:16 EST


On Tue, Nov 20, 2018 at 08:48:59AM -0800, Tejun Heo wrote:
> Hello,
>
> On Tue, Nov 20, 2018 at 04:43:52PM +0000, Roman Gushchin wrote:
> > > But that wouldn't udpate the cgroup's frozen state and generate
> > > notifications, right?
> >
> > Why? The task will be eventually trapped into cgroup_enter_frozen(),
> > and from there cgroup_update_frozen() will be called.
>
> Because the cgroup is no longer frozen?
>
> > You are right, that notification will not be issued, because the cgroup
> > is not changing its state (frozen->frozen). I'm not sure that it makes
> > sense to change the cgroup state back and forth in this case. Are there
> > any reasons I'm missing?
>
> Imagine the task being trapped in nfs or wherever and not getting into
> the freezer for an extended period of time.

Yeah, it's a good point. I've thought about it mostly in the fork() context,
where if freezing of a cgroup races with fork(), it makes no sense to
switch the cgroup state back and forth. But that case is different, as
the child will be trapped just on the return path from fork() call.

Thanks!