Thread (23 messages) 23 messages, 4 authors, 2018-11-28

Re: [PATCH v2 3/6] cgroup: cgroup v2 freezer

From: Oleg Nesterov <oleg@redhat.com>
Date: 2018-11-13 16:00:09
Also in: lkml

Hi Tejun,

On 11/13, Tejun Heo wrote:
quoted
OK, please forget for now, but perhaps it would be more clean to add
JOBCTL_TRAP_FREEZE to the JOBCTL_PENDING_MASK check in recalc_sigpending()
and change get_signal to check JOBCTL_TRAP_MASK | JOBCTL_TRAP_FREEZE; and
I am not even sure cgroup_freezer_enter() should live in do_jobctl_trap().
I'm sure you're aware of the context but just to refresh - one thing
which was really broken about cgroup1 freezer was that it piggybacked
on hibernation freezer and put frozen tasks in a state which is
undefined when seen from userspace - they're just stuck in D sleep
somewhere in the kernel.  That's fine when the whole system is not
gonna be running, but not when only a subportion is being frozen.
Thanks, I see.
So, the primary goal of cgroup2 freezer is putting the tasks in an
equivalent state as jobctl stop.  It's a jobctl stop but controlled by
cgroup frozen state, meaning that they can be killed, PTRACE_SEIZE'd
and INTERRUPT'ed (PTRACE_ATTACH doesn't work as signal delivery should
be blocked but that's fine) and so on.
And I agree, JOBCTL_TRAP_FREEZE looks fine.

Just somehow I _feel_ that we can improve this logic a bit, but let me
repeat that of course I can be easily wrong and I didn't even read the
patch yet.

Oleg.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help