Message ID | 20241026051410.2819338-5-xur@google.com |
---|---|
State | New |
Headers | show |
Series | Add AutoFDO and Propeller support for Clang build | expand |
On Fri, Oct 25, 2024 at 10:14:06PM -0700, Rong Xu wrote: > Add markers like __hot_text_start, __hot_text_end, __unlikely_text_start, > and __unlikely_text_end which will be included in System.map. These markers > indicate how the compiler groups functions, providing valuable information > to developers about the layout and optimization of the code. > > Co-developed-by: Han Shen <shenhan@google.com> > Signed-off-by: Han Shen <shenhan@google.com> Yup, this is good. Reviewed-by: Kees Cook <kees@kernel.org>
On Fri, Oct 25, 2024 at 10:14:06PM -0700, Rong Xu wrote: > Add markers like __hot_text_start, __hot_text_end, __unlikely_text_start, > and __unlikely_text_end which will be included in System.map. These markers > indicate how the compiler groups functions, providing valuable information > to developers about the layout and optimization of the code. > > Co-developed-by: Han Shen <shenhan@google.com> > Signed-off-by: Han Shen <shenhan@google.com> Reviewed-by: Kees Cook <kees@kernel.org>
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index fd901951549c0..e02973f3b4189 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -549,6 +549,16 @@ __cpuidle_text_end = .; \ __noinstr_text_end = .; +#define TEXT_UNLIKELY \ + __unlikely_text_start = .; \ + *(.text.unlikely .text.unlikely.*) \ + __unlikely_text_end = .; + +#define TEXT_HOT \ + __hot_text_start = .; \ + *(.text.hot .text.hot.*) \ + __hot_text_end = .; + /* * .text section. Map to function alignment to avoid address changes * during second ld run in second ld pass when generating System.map @@ -565,9 +575,9 @@ 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)