rcu: Unconditionally use rcuc threads on PREEMPT_RT
authorScott Wood <swood@redhat.com>
Tue, 15 Dec 2020 14:16:46 +0000 (15:16 +0100)
committerPaul E. McKenney <paulmck@kernel.org>
Mon, 4 Jan 2021 21:43:51 +0000 (13:43 -0800)
commit8b9a0ecc7ef5e1ed3afbc926de17399a37128c82
tree66d0c14ef24894b8ac54e1c1eebe4f27777fa28b
parent2341bc4a0311e4319ced6c2828bb19309dee74fd
rcu: Unconditionally use rcuc threads on PREEMPT_RT

PREEMPT_RT systems have long used the rcutree.use_softirq kernel
boot parameter to avoid use of RCU_SOFTIRQ handlers, which can disrupt
real-time applications by invoking callbacks during return from interrupts
that arrived while executing time-critical code.  This kernel boot
parameter instead runs RCU core processing in an 'rcuc' kthread, thus
allowing the scheduler to do its job of avoiding disrupting time-critical
code.

This commit therefore disables the rcutree.use_softirq kernel boot
parameter on PREEMPT_RT systems, thus forcing such systems to do RCU
core processing in 'rcuc' kthreads.  This approach has long been in
use by users of the -rt patchset, and there have been no complaints.
There is therefore no way for the system administrator to override this
choice, at least without modifying and rebuilding the kernel.

Signed-off-by: Scott Wood <swood@redhat.com>
[bigeasy: Reword commit message]
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
[ paulmck: Update kernel-parameters.txt accordingly. ]
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Documentation/admin-guide/kernel-parameters.txt
kernel/rcu/tree.c