Re: [PATCH v3 0/5] RCU dyntick nesting counter cleanups for rcu -dev
From: Thomas Gleixner
Date: Sun May 17 2020 - 06:29:55 EST
Paul,
"Paul E. McKenney" <paulmck@xxxxxxxxxx> writes:
> And I have allegedly resolved the conflicts with Thomas's and Peter's
> series, or at least the noinstr-rcu-nmi-2020-05-15 branch of that series.
> At least one conflict was completely invisible to "git rebase" (but
> fortunately blindingly obvious to the compiler). This naturally makes
> me suspect that additional adjustments might be needed. Especially
> given that misplaced instrumentation_begin() and instrumentation_end()
> calls are invisible not only to the compiler, but also to rcutorture in
> my setup. (For example, tracing before instrumentation_begin() or after
> instrumentation_end() is a bug.)
there is tooling to verify that. If you merge
git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git entry-v7-full
into your dev branch (trivial conflict) and after building it, run:
objtool check -fal $BUILDIR/vmlinux.o
Note: This only covers built-in code. So if you have code you want to
check make sure it's not built as module.
Just did that and it complains about:
../build/vmlinux.o: warning: objtool: rcu_eqs_enter.constprop.0()+0xa9: call to rcu_preempt_deferred_qs() leaves .noinstr.text section
But that's even the case on my branch without your changes.
The call to rcu_preempt_deferred_qs() is definitely before
instrumentation_end() so this needs to be investigated on the objtool
side. Peter?
Thanks,
tglx