]> www.infradead.org Git - linux.git/commit
Revert "rcu-tasks: Fix synchronize_rcu_tasks() VS zap_pid_ns_processes()"
authorFrederic Weisbecker <frederic@kernel.org>
Thu, 25 Apr 2024 14:24:04 +0000 (16:24 +0200)
committerPaul E. McKenney <paulmck@kernel.org>
Tue, 4 Jun 2024 00:30:08 +0000 (17:30 -0700)
commit9855c37edf0009cc276cecfee09f7e76e2380212
treebeb98308f9cc5f960668a7ca7522a05ddc2660f5
parent1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0
Revert "rcu-tasks: Fix synchronize_rcu_tasks() VS zap_pid_ns_processes()"

This reverts commit 28319d6dc5e2ffefa452c2377dd0f71621b5bff0. The race
it fixed was subject to conditions that don't exist anymore since:

1612160b9127 ("rcu-tasks: Eliminate deadlocks involving do_exit() and RCU tasks")

This latter commit removes the use of SRCU that used to cover the
RCU-tasks blind spot on exit between the tasklist's removal and the
final preemption disabling. The task is now placed instead into a
temporary list inside which voluntary sleeps are accounted as RCU-tasks
quiescent states. This would disarm the deadlock initially reported
against PID namespace exit.

Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Reviewed-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
include/linux/rcupdate.h
kernel/pid_namespace.c
kernel/rcu/tasks.h