Messages in this thread | | | From | Thomas Gleixner <> | Subject | Re: [PATCH v3 0/5] RCU dyntick nesting counter cleanups for rcu -dev | Date | Sun, 17 May 2020 12:26:43 +0200 |
| |
Paul,
"Paul E. McKenney" <paulmck@kernel.org> 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
| |