diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2022-03-04 12:07:25 +0100 |
---|---|---|
committer | Paul E. McKenney <paulmck@kernel.org> | 2022-04-11 17:06:42 -0700 |
commit | 88db792bbe9b140680c74e9f2f801ac00f54e05e (patch) | |
tree | 7b98245426889cc6ab7aa2e6b1c4132c0b13f74c /lib/math | |
parent | f25390033fa2445cdc4d6cf8243a9b85d942845f (diff) | |
download | linux-88db792bbe9b140680c74e9f2f801ac00f54e05e.tar.gz linux-88db792bbe9b140680c74e9f2f801ac00f54e05e.tar.bz2 linux-88db792bbe9b140680c74e9f2f801ac00f54e05e.zip |
rcu-tasks: Use rcuwait for the rcu_tasks_kthread()
The waitqueue used by rcu_tasks_kthread() has always only one waiter.
With a guaranteed only one waiter, this can be replaced with rcuwait
which is smaller and simpler. With rcuwait based wake counterpart, the
irqwork function (call_rcu_tasks_iw_wakeup()) can be invoked hardirq
context because it is only a wake up and no sleeping locks are involved
(unlike the wait_queue_head).
As a side effect, this is also one piece of the puzzle to pass the RCU
selftest at early boot on PREEMPT_RT.
Replace wait_queue_head with rcuwait and let the irqwork run in hardirq
context on PREEMPT_RT.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Diffstat (limited to 'lib/math')
0 files changed, 0 insertions, 0 deletions