Re: [PATCH 1/3] rcu: Always inline rcu_dynticks_task*_{enter,exit}()

From: Paul E. McKenney
Date: Tue Sep 28 2021 - 19:03:53 EST


On Wed, Sep 29, 2021 at 12:35:14AM +0200, Thomas Gleixner wrote:
> On Tue, Sep 28 2021 at 10:40, Peter Zijlstra wrote:
>
> > RCU managed to grow a few noinstr violations:
> >
> > vmlinux.o: warning: objtool: rcu_dynticks_eqs_enter()+0x0: call to rcu_dynticks_task_trace_enter() leaves .noinstr.text section
> > vmlinux.o: warning: objtool: rcu_dynticks_eqs_exit()+0xe: call to rcu_dynticks_task_trace_exit() leaves .noinstr.text section
> >
> > Fix them by adding __always_inline to the relevant trivial functions.
> >
> > Also replace the noinstr with __always_inline for the existing
> > rcu_dynticks_task_*() functions since noinstr would force noinline
> > them, even when empty, which seems silly.
> >
> > Fixes: 7d0c9c50c5a1 ("rcu-tasks: Avoid IPIing userspace/idle tasks if kernel is so built")
> > Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
> > Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
>
> Reviewed-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>

Thank you! I will apply to the pair of RCU commits at the next rebase.

Thanx, Paul