]> www.infradead.org Git - users/jedix/linux-maple.git/commit
rcu-tasks: Make ksoftirqd provide RCU Tasks quiescent states
authorPaul E. McKenney <paulmck@kernel.org>
Thu, 25 Mar 2021 00:08:48 +0000 (17:08 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Tue, 6 Apr 2021 23:07:14 +0000 (16:07 -0700)
commit23dd42ef8e26d8b8143941294517155f5c76f82f
tree23909c7f8a1395792da5b0921956e55638f87e7a
parent43e863458acdd295ba33cb94862cb34102e5f964
rcu-tasks: Make ksoftirqd provide RCU Tasks quiescent states

Heavy networking load can cause a CPU to execute continuously and
indefinitely within ksoftirqd, in which case there will be no voluntary
task switches and thus no RCU-tasks quiescent states.  This commit
therefore causes the exiting rcu_softirq_qs() to provide an RCU-tasks
quiescent state.

This of course means that __do_softirq() and its callers cannot be
invoked from within a tracing trampoline.

Reported-by: Toke Høiland-Jørgensen <toke@redhat.com>
Tested-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
kernel/rcu/tree.c