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 <shen...@google.com>
Signed-off-by: Han Shen <shen...@google.com>
Signed-off-by: Rong Xu <x...@google.com>
Suggested-by: Sriraman Tallam <tmsri...@google.com>
Tested-by: Yonghong Song <yonghong.s...@linux.dev>
Tested-by: Yabin Cui <yab...@google.com>
Change-Id: Ie7688587adf89a14661ceca108680903b546d5d9
---
 include/asm-generic/vmlinux.lds.h | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

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)
-- 
2.47.0.163.g1226f6d8fa-goog


Reply via email to