[tip: core/rcu] rcu: Mark rcu_nmi_enter() call to rcu_cleanup_after_idle() noinstr

From: tip-bot2 for Paul E. McKenney
Date: Fri Jul 31 2020 - 05:24:14 EST


The following commit has been merged into the core/rcu branch of tip:

Commit-ID: 04b25a495bd68c1dad07263fb91e8b5a31c00a9e
Gitweb: https://git.kernel.org/tip/04b25a495bd68c1dad07263fb91e8b5a31c00a9e
Author: Paul E. McKenney <paulmck@xxxxxxxxxx>
AuthorDate: Tue, 19 May 2020 17:00:54 -07:00
Committer: Paul E. McKenney <paulmck@xxxxxxxxxx>
CommitterDate: Mon, 29 Jun 2020 11:58:50 -07:00

rcu: Mark rcu_nmi_enter() call to rcu_cleanup_after_idle() noinstr

The objtool complains about the call to rcu_cleanup_after_idle() from
rcu_nmi_enter(), so this commit adds instrumentation_begin() before that
call and instrumentation_end() after it.

Acked-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxx>
---
kernel/rcu/tree.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index feb31c2..d17e5a0 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -990,8 +990,11 @@ noinstr void rcu_nmi_enter(void)
rcu_dynticks_eqs_exit();
// ... but is watching here.

- if (!in_nmi())
+ if (!in_nmi()) {
+ instrumentation_begin();
rcu_cleanup_after_idle();
+ instrumentation_end();
+ }

instrumentation_begin();
// instrumentation for the noinstr rcu_dynticks_curr_cpu_in_eqs()