On Mon, 21 Jun 2021 16:18:19 -0700, Nick Desaulniers wrote: > The kernel has been using noinstr for correctness to politely request > that the compiler avoid adding various forms of instrumentation to > certain functions. > > GCOV and PGO can both instrument functions, yet the function attribute > to disable such instrumentation (no_profile_instrument_function) was not > being used to suppress such implementation. Also, clang only just > recently gained support for no_profile_instrument_function. GCC has > supported that since 7.1+. > > [...] Applied to for-next/clang/features, thanks! [1/3] compiler_attributes.h: define __no_profile, add to noinstr https://git.kernel.org/kees/c/380d53c45ff2 [2/3] compiler_attributes.h: cleanups for GCC 4.9+ https://git.kernel.org/kees/c/ae4d682dfd33 [3/3] Kconfig: add ARCH_WANTS_NO_INSTR+CC_HAS_NO_PROFILE_FN_ATTR, depend on for GCOV and PGO https://git.kernel.org/kees/c/51c2ee6d121c Note that I've tweaked the series slightly to move the PGO Kconfig change into the PGO patch. -- Kees Cook