Peter Zijlstra <[email protected]> writes: > On Mon, May 18, 2020 at 10:24:53PM +0200, Thomas Gleixner wrote: > So tglx/entry-v8-full + below patch: > > $ make O=defconfig-build clean > ... > $ make CC=gcc-9 O=defconfig-build/ vmlinux -j40 -s > vmlinux.o: warning: objtool: exc_debug()+0x158: call to > trace_hwlat_timestamp() leaves .noinstr.text section > vmlinux.o: warning: objtool: exc_nmi()+0x190: call to trace_hwlat_timestamp() > leaves .noinstr.text section > vmlinux.o: warning: objtool: do_machine_check()+0x46: call to mce_rdmsrl() > leaves .noinstr.text section > $ > > (it really isn't defconfig, but your config-fail + DEBUG_ENTRY) > > +#ifdef CONFIG_DEBUG_ENTRY > /* Begin/end of an instrumentation safe region */ > -#define instrumentation_begin() ({ > \ > +#define instrumentation_begin() ({ \ > asm volatile("%c0:\n\t" \ > ".pushsection .discard.instr_begin\n\t" \ > ".long %c0b - .\n\t" \ > ".popsection\n\t" : : "i" (__COUNTER__)); \ > }) > > -#define instrumentation_end() ({ > \ > - asm volatile("%c0:\n\t" \ > +#define instrumentation_end() ({ \ > + asm volatile("%c0: nop\n\t" \
Bah. I fatfingered that nop out when I fixed up that noinstr wreckage. With that added back it does was it claims to do.

