Re: [PATCH 2/2] kernel: rerun task_work while freezing in get_signal()

From: Tejun Heo
Date: Tue Jul 09 2024 - 13:11:20 EST


Hello,

On Tue, Jul 09, 2024 at 03:05:21PM +0100, Pavel Begunkov wrote:
> > -----------------------------------------------------------------------
> > Either way I have no idea whether a cgroup_task_frozen() task should
> > react to task_work_add(TWA_SIGNAL) or not.
> >
> > Documentation/admin-guide/cgroup-v2.rst says
> >
> > Writing "1" to the file causes freezing of the cgroup and all
> > descendant cgroups. This means that all belonging processes will
> > be stopped and will not run until the cgroup will be explicitly
> > unfrozen.
> >
> > AFAICS this is not accurate, they can run but can't return to user-mode.
> > So I guess task_work_run() is fine.
>
> IIUC it's a user facing doc, so maybe it's accurate enough from that
> perspective. But I do agree that the semantics around task_work is
> not exactly clear.

A good correctness test for cgroup freezer is whether it'd be safe to
snapshot and restore the tasks in the cgroup while frozen. If that works,
it's most likely fine.

Thanks.

--
tejun