diff options
author | Paul E. McKenney <paulmck@kernel.org> | 2019-07-10 18:01:01 +0300 |
---|---|---|
committer | Paul E. McKenney <paulmck@kernel.org> | 2019-10-05 20:46:05 +0300 |
commit | 366237e7b0833faa2d8da7a8d7d7da8c3ca802e5 (patch) | |
tree | 5944c55f1dd161c7c1a2420fb259854930324df2 /kernel/stop_machine.c | |
parent | d38e6dc6ed0dfef8d323354031a1ee1a7cfdedc1 (diff) | |
download | linux-366237e7b0833faa2d8da7a8d7d7da8c3ca802e5.tar.xz |
stop_machine: Provide RCU quiescent state in multi_cpu_stop()
When multi_cpu_stop() loops waiting for other tasks, it can trigger an RCU
CPU stall warning. This can be misleading because what is instead needed
is information on whatever task is blocking multi_cpu_stop(). This commit
therefore inserts an RCU quiescent state into the multi_cpu_stop()
function's waitloop.
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Diffstat (limited to 'kernel/stop_machine.c')
-rw-r--r-- | kernel/stop_machine.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c index c7031a22aa7b..34c4f117d8c7 100644 --- a/kernel/stop_machine.c +++ b/kernel/stop_machine.c @@ -233,6 +233,7 @@ static int multi_cpu_stop(void *data) */ touch_nmi_watchdog(); } + rcu_momentary_dyntick_idle(); } while (curstate != MULTI_STOP_EXIT); local_irq_restore(flags); |