aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tools/testing/selftests/rcutorture/configs
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@kernel.org>2021-01-14 10:39:31 -0800
committerPaul E. McKenney <paulmck@kernel.org>2021-03-08 14:21:40 -0800
commit39bbfc62cc90d33f8f5f940464d08075e0275f8a (patch)
tree0468136ceb2a0a13e3d116c30e355750f122a752 /tools/testing/selftests/rcutorture/configs
parentLinux 5.12-rc2 (diff)
downloadwireguard-linux-39bbfc62cc90d33f8f5f940464d08075e0275f8a.tar.xz
wireguard-linux-39bbfc62cc90d33f8f5f940464d08075e0275f8a.zip
rcu: Expedite deboost in case of deferred quiescent state
Historically, a task that has been subjected to RCU priority boosting is deboosted at rcu_read_unlock() time. However, with the advent of deferred quiescent states, if the outermost rcu_read_unlock() was invoked with either bottom halves, interrupts, or preemption disabled, the deboosting will be delayed for some time. During this time, a low-priority process might be incorrectly running at a high real-time priority level. Fortunately, rcu_read_unlock_special() already provides mechanisms for forcing a minimal deferral of quiescent states, at least for kernels built with CONFIG_IRQ_WORK=y. These mechanisms are currently used when expedited grace periods are pending that might be blocked by the current task. This commit therefore causes those mechanisms to also be used in cases where the current task has been or might soon be subjected to RCU priority boosting. Note that this applies to all kernels built with CONFIG_RCU_BOOST=y, regardless of whether or not they are also built with CONFIG_PREEMPT_RT=y. This approach assumes that kernels build for use with aggressive real-time applications are built with CONFIG_IRQ_WORK=y. It is likely to be far simpler to enable CONFIG_IRQ_WORK=y than to implement a fast-deboosting scheme that works correctly in its absence. While in the area, alphabetize the rcu_preempt_deferred_qs_handler() function's local variables. Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Cc: Scott Wood <swood@redhat.com> Cc: Lai Jiangshan <jiangshanlai@gmail.com> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Diffstat (limited to 'tools/testing/selftests/rcutorture/configs')
0 files changed, 0 insertions, 0 deletions