Re: [patch V6 00/37] x86/entry: Rework leftovers and merge plan

From: Thomas Gleixner
Date: Tue May 19 2020 - 05:07:01 EST


Peter Zijlstra <peterz@xxxxxxxxxxxxx> 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.