Re: [PATCH V6 04/11] compiler_types.h: Add __noinstr_section() for noinstr

From: Peter Zijlstra
Date: Mon Oct 24 2022 - 16:27:01 EST


On Mon, Oct 24, 2022 at 12:56:03PM +0100, Mark Rutland wrote:

> How about we split this like:
>
> | /*
> | * Prevent the compiler from instrumenting this code in any way
> | * This does not prevent instrumentation via KPROBES, which must be
> | * prevented through other means if necessary.

Perhaps point to NOINSTR_TEXT in vmlinux.lds.h

> | */
> | #define __no_compiler_instrument \
> | noinline notrace noinline notrace __no_kcsan \
> | __no_sanitize_address __no_sanitize_coverage
> |
> | /*
> | * Section for code which can't be instrumented at all.
> | * Any code in this section cannot be instrumented with KPROBES.
> | */
> | #define noinstr __no_compiler_instrument section(".noinstr.text")
>
> ... then we don't need __noinstr_section(), and IMO the split is
> clearer.

Yeah, perhaps, no strong feelings. Note I have this in the sched-idle
series as well (which I still need to rebase and repost :/).