Message ID | 20210618233023.1360185-1-ndesaulniers@google.com (mailing list archive) |
---|---|
Headers | show |
Series | no_profile fn attr and Kconfig for GCOV+PGO | expand |
On 2021-06-18, Nick Desaulniers wrote: >When we say noinstr, we mean noinstr. GCOV and PGO can both instrument >functions. Add a new function annotation __no_profile that expands to >__attribute__((__no_profile__)) and Kconfig value >CC_HAS_NO_PROFILE_FN_ATTR. > >Base is >https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/log/?h=for-next/clang/pgo. > >Nick Desaulniers (2): > compiler_attributes.h: define __no_profile, add to noinstr > Kconfig: CC_HAS_NO_PROFILE_FN_ATTR, depend on for GCOV and PGO > > include/linux/compiler_attributes.h | 12 ++++++++++++ > include/linux/compiler_types.h | 2 +- > init/Kconfig | 3 +++ > kernel/gcov/Kconfig | 1 + > kernel/pgo/Kconfig | 3 ++- > 5 files changed, 19 insertions(+), 2 deletions(-) > > >base-commit: 4356bc4c0425c81e204f561acf4dd0095544a6cb >-- >2.32.0.288.g62a8d224e6-goog > Thanks for the attribute work in clang and kernel! Hope we can use clang PGO in 5.14... (I am a casual contributor to clang PGO/coverage)
On Fri, Jun 18, 2021 at 04:30:21PM -0700, Nick Desaulniers wrote: > When we say noinstr, we mean noinstr. GCOV and PGO can both instrument > functions. Add a new function annotation __no_profile that expands to > __attribute__((__no_profile__)) and Kconfig value > CC_HAS_NO_PROFILE_FN_ATTR. > > Base is > https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/log/?h=for-next/clang/pgo. > > Nick Desaulniers (2): > compiler_attributes.h: define __no_profile, add to noinstr > Kconfig: CC_HAS_NO_PROFILE_FN_ATTR, depend on for GCOV and PGO Oh, awesome! Thanks for the fast work on this. If there are no objections, I'll apply this in front of the PGO series and put it in -next. -Kees > > include/linux/compiler_attributes.h | 12 ++++++++++++ > include/linux/compiler_types.h | 2 +- > init/Kconfig | 3 +++ > kernel/gcov/Kconfig | 1 + > kernel/pgo/Kconfig | 3 ++- > 5 files changed, 19 insertions(+), 2 deletions(-) > > > base-commit: 4356bc4c0425c81e204f561acf4dd0095544a6cb > -- > 2.32.0.288.g62a8d224e6-goog >
On Fri, Jun 18, 2021 at 7:45 PM Kees Cook <keescook@chromium.org> wrote: > > On Fri, Jun 18, 2021 at 04:30:21PM -0700, Nick Desaulniers wrote: > > When we say noinstr, we mean noinstr. GCOV and PGO can both instrument > > functions. Add a new function annotation __no_profile that expands to > > __attribute__((__no_profile__)) and Kconfig value > > CC_HAS_NO_PROFILE_FN_ATTR. > > > > Base is > > https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/log/?h=for-next/clang/pgo. > > > > Nick Desaulniers (2): > > compiler_attributes.h: define __no_profile, add to noinstr > > Kconfig: CC_HAS_NO_PROFILE_FN_ATTR, depend on for GCOV and PGO > > Oh, awesome! Thanks for the fast work on this. If there are no objections, > I'll apply this in front of the PGO series and put it in -next. > That works for me! Thanks, Nick and Kees! -bw
On Sat, Jun 19, 2021 at 4:45 AM Kees Cook <keescook@chromium.org> wrote: > > Oh, awesome! Thanks for the fast work on this. If there are no objections, > I'll apply this in front of the PGO series and put it in -next. If you are picking both patches on your tree, please see my comment on the first commit. With that solved, for the first commit: Reviewed-by: Miguel Ojeda <ojeda@kernel.org> Cheers, Miguel