rcu: Allow for smp_call_function() running callbacks from idle
authorPeter Zijlstra <peterz@infradead.org>
Wed, 27 May 2020 17:12:36 +0000 (19:12 +0200)
committerIngo Molnar <mingo@kernel.org>
Thu, 28 May 2020 08:50:12 +0000 (10:50 +0200)
commit806f04e9fd2c6ad1e39bc2dba77155be0e4becde
tree08df6bea32bf6ac4ac4511b71cbb0251c9ca70f1
parentb1fcf9b83c4149c63d1e0c699e85f93cbe28e211
rcu: Allow for smp_call_function() running callbacks from idle

Current RCU hard relies on smp_call_function() callbacks running from
interrupt context. A pending optimization is going to break that, it
will allow idle CPUs to run the callbacks from the idle loop. This
avoids raising the IPI on the requesting CPU and avoids handling an
exception on the receiving CPU.

Change rcu_is_cpu_rrupt_from_idle() to also accept task context,
provided it is the idle task.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Link: https://lore.kernel.org/r/20200527171236.GC706495@hirez.programming.kicks-ass.net
kernel/rcu/tree.c