rcu: Provide improved interrupt-from-idle check in rcu_check_callbacks()
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 9 Jul 2018 22:50:16 +0000 (15:50 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 30 Aug 2018 23:03:39 +0000 (16:03 -0700)
commita0ef9ec24144799b5b47fa54c38f9a0f9dfe9a59
treea318be5c9dee9890d883744e8abbd7fc49101d7b
parent92aa39e9dc77481b90cbef25e547d66cab901496
rcu: Provide improved interrupt-from-idle check in rcu_check_callbacks()

The patch making need_resched() respond to urgent RCU-QS needs used
is_idle_task(current) to detect an interrupt from idle, which does work
reasonably, but is (in theory at least) vulnerable to loops containing
need_resched() invoked from within RCU_NONIDLE() or its tracepoint
equivalent.  This commit therefore moves rcu_is_cpu_rrupt_from_idle()
to a place from which rcu_check_callbacks() can invoke it and replaces
the is_idle_task(current) with rcu_is_cpu_rrupt_from_idle().

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
kernel/rcu/tree.c