Peter Zijlstra <[email protected]> writes:
> So on top of you entry-v8-full; I had to chase one of those
> instrumentation_end() escapes an (extended) basic block chase (again!).
>
> +#ifdef CONFIG_DEBUG_ENTRY
Why this? We lose the kprobes runtime protection that way.
> +/* Section for code which can't be instrumented at all */
> +#define noinstr
> \
> + noinline notrace __attribute((__section__(".noinstr.text")))
> +
> /* 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__));
Nifty.
Thanks,
tglx