On Tue, Oct 22, 2024 at 8:32 AM Rong Xu <xur@xxxxxxxxxx> wrote: > > The answers are the same as the reply in [PATCH v4 5/6] > > > > > > Again, why is this conditional? > > The condition is to ensure that we don't change the default kernel > build by any means. The new code will introduce a few new symbols. > Same answer. I guess you prefer unmaintainable code because you are not a maintainer. > > > > The only difference is *_start and *_end symbols are defined > > when CONFIG_AUTOFDO_CLANG=y. > > > > And, where are these symbols used? > > These new symbols are currently unreferenced within the kernel source tree. > However, they provide a valuable means of identifying hot and cold > sections of text, and how large they are. I think they are useful information. OK, then you are doing unrelated changes to include/asm-generic/vmlinux.lds.h. This patch should touch only scripts/Makefile.autofdo If you want to insert *_start and *_end markers, you can add a separate patch, explaining your motivation. > > > > > > > > > > > > > > > > > > > > > > > > > > + > > > /* > > > * .text section. Map to function alignment to avoid address changes > > > * during second ld run in second ld pass when generating System.map > > > @@ -557,30 +578,30 @@ > > > * code elimination or function-section is enabled. Match these symbols > > > * first when in these builds. > > > */ > > > -#if defined(CONFIG_LD_DEAD_CODE_DATA_ELIMINATION) || defined(CONFIG_LTO_CLANG) > > > +#if defined(CONFIG_LD_DEAD_CODE_DATA_ELIMINATION) || defined(CONFIG_LTO_CLANG) || \ > > > +defined(CONFIG_AUTOFDO_CLANG) > > > #define TEXT_TEXT \ > > > ALIGN_FUNCTION(); \ > > > *(.text.asan.* .text.tsan.*) \ > > > *(.text.unknown .text.unknown.*) \ > > > - *(.text.unlikely .text.unlikely.*) \ > > > + TEXT_UNLIKELY \ > > > . = ALIGN(PAGE_SIZE); \ > > > - *(.text.hot .text.hot.*) \ > > > + TEXT_HOT \ > > > *(TEXT_MAIN .text.fixup) \ > > > NOINSTR_TEXT \ > > > *(.ref.text) > > > #else > > > #define TEXT_TEXT \ > > > ALIGN_FUNCTION(); \ > > > - *(.text.hot .text.hot.*) \ > > > + TEXT_HOT \ > > > *(TEXT_MAIN .text.fixup) \ > > > - *(.text.unlikely .text.unlikely.*) \ > > > + TEXT_UNLIKELY \ > > > *(.text.unknown .text.unknown.*) \ > > > NOINSTR_TEXT \ > > > *(.ref.text) \ > > > *(.text.asan.* .text.tsan.*) > > > #endif > > > > > > - > > > /* sched.text is aling to function alignment to secure we have same > > > * address even at second ld pass when generating System.map */ > > > #define SCHED_TEXT \ > > > diff --git a/scripts/Makefile.autofdo b/scripts/Makefile.autofdo > > > index 1c9f224bc221..9c9a530ef090 100644 > > > --- a/scripts/Makefile.autofdo > > > +++ b/scripts/Makefile.autofdo > > > @@ -10,7 +10,7 @@ ifndef CONFIG_DEBUG_INFO > > > endif > > > > > > ifdef CLANG_AUTOFDO_PROFILE > > > - CFLAGS_AUTOFDO_CLANG += -fprofile-sample-use=$(CLANG_AUTOFDO_PROFILE) > > > + CFLAGS_AUTOFDO_CLANG += -fprofile-sample-use=$(CLANG_AUTOFDO_PROFILE) -ffunction-sections > > > endif > > > > > > ifdef CONFIG_LTO_CLANG_THIN > > > -- > > > 2.47.0.rc1.288.g06298d1525-goog > > > > > > > > > > > > -- > > Best Regards > > Masahiro Yamada > -- Best Regards Masahiro Yamada