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.

Reply via email to