On Wed, Oct 09, 2019 at 05:02:30PM +0200, Oleg Nesterov wrote: > ptrace_stop() does preempt_enable_no_resched() to avoid the preemption, > but after that cgroup_enter_frozen() does spin_lock/unlock and this adds > another preemption point. > > Reported-and-tested-by: Bruce Ashfield <[email protected]> > Fixes: 76f969e8948d ("cgroup: cgroup v2 freezer") > Cc: [email protected] # v5.2+ > Signed-off-by: Oleg Nesterov <[email protected]> > --- > kernel/signal.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/signal.c b/kernel/signal.c > index 534fec2..f8eed86 100644 > --- a/kernel/signal.c > +++ b/kernel/signal.c > @@ -2205,8 +2205,8 @@ static void ptrace_stop(int exit_code, int why, int > clear_code, kernel_siginfo_t > */ > preempt_disable(); > read_unlock(&tasklist_lock); > - preempt_enable_no_resched(); > cgroup_enter_frozen(); > + preempt_enable_no_resched();
Acked-by: Roman Gushchin <[email protected]> Thank you!

