On Mon, Jun 15, 2020 at 05:49:05PM +0200, Peter Zijlstra wrote:
> @@ -983,13 +993,17 @@ noinstr void rcu_nmi_enter(void)
>               if (!in_nmi())
>                       rcu_cleanup_after_idle();
>  
> +             instrumentation_begin();
> +             // instrumentation for the noinstr 
> rcu_dynticks_curr_cpu_in_eqs()
> +             instrument_atomic_read(&rdp->dynticks, sizeof(rdp->dynticks));
> +             // instrumentation for the noinstr rcu_dynticks_eqs_exit()
> +             instrument_atomic_write(&rdp->dynticks, sizeof(rdp->dynticks));
> +
>               incby = 1;
>       } else if (!in_nmi()) {
>               instrumentation_begin();
>               rcu_irq_enter_check_tick();
> -             instrumentation_end();
>       }
> -     instrumentation_begin();
>       trace_rcu_dyntick(incby == 1 ? TPS("Endirq") : TPS("++="),
>                         rdp->dynticks_nmi_nesting,
>                         rdp->dynticks_nmi_nesting + incby, 
> atomic_read(&rdp->dynticks));

Oh, that's lost a possible instrumentation_begin() :/ But weirdly
objtool didn't complain about that... Let me poke at that.

Reply via email to