rcu-tasks: Maintain lists to eliminate RCU-tasks/do_exit() deadlocks
authorPaul E. McKenney <paulmck@kernel.org>
Fri, 2 Feb 2024 19:28:45 +0000 (11:28 -0800)
committerBoqun Feng <boqun.feng@gmail.com>
Sun, 25 Feb 2024 22:21:43 +0000 (14:21 -0800)
commit6b70399f9ef3809f6e308fd99dd78b072c1bd05c
tree3e97b5789d9c52bf95808d07be34c86d2eb27020
parent46faf9d8e1d52e4a91c382c6c72da6bd8e68297b
rcu-tasks: Maintain lists to eliminate RCU-tasks/do_exit() deadlocks

This commit continues the elimination of deadlocks involving do_exit()
and RCU tasks by causing exit_tasks_rcu_start() to add the current
task to a per-CPU list and causing exit_tasks_rcu_stop() to remove the
current task from whatever list it is on.  These lists will be used to
track tasks that are exiting, while still accounting for any RCU-tasks
quiescent states that these tasks pass though.

[ paulmck: Apply Frederic Weisbecker feedback. ]

Link: https://lore.kernel.org/all/20240118021842.290665-1-chenzhongjin@huawei.com/
Reported-by: Chen Zhongjin <chenzhongjin@huawei.com>
Reported-by: Yang Jihong <yangjihong1@huawei.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Tested-by: Yang Jihong <yangjihong1@huawei.com>
Tested-by: Chen Zhongjin <chenzhongjin@huawei.com>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
kernel/rcu/tasks.h