]> git.ipfire.org Git - thirdparty/linux.git/commit
rcu-tasks: Make Tasks RCU wait idly for grace-period delays
authorPaul E. McKenney <paulmck@kernel.org>
Fri, 23 Feb 2024 23:16:20 +0000 (15:16 -0800)
committerUladzislau Rezki (Sony) <urezki@gmail.com>
Tue, 9 Apr 2024 13:11:49 +0000 (15:11 +0200)
commitc342b42fa47f4257fccfeadc8e32c51b1be17a1f
tree105317991382f0d94501cd25115be1561507970b
parent39cd87c4eb2b893354f3b850f916353f2658ae6f
rcu-tasks: Make Tasks RCU wait idly for grace-period delays

Currently, all waits for grace periods sleep at TASK_UNINTERRUPTIBLE,
regardless of RCU flavor.  This has worked well, but there have been
cases where a longer-than-average Tasks RCU grace period has triggered
softlockup splats, many of them, before the Tasks RCU CPU stall warning
appears.  These softlockup splats unnecessarily consume console bandwidth
and complicate diagnosis of the underlying problem.  Plus a long but not
pathologically long Tasks RCU grace period might trigger a few softlockup
splats before completing normally, which generates noise for no good
reason.

This commit therefore causes Tasks RCU grace periods to sleep at TASK_IDLE
priority.  If there really is a persistent problem, the eventual Tasks
RCU CPU stall warning will flag it, and without the extra noise.

Reported-by: Breno Leitao <leitao@debian.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
include/linux/rcupdate_wait.h
kernel/rcu/tasks.h
kernel/rcu/update.c