I sent the following patch for review: https://lkml.org/lkml/2024/11/12/1565 Thanks! -Rong On Mon, Nov 11, 2024 at 11:45 PM Klara Modin <klarasmodin@xxxxxxxxx> wrote: > > On 2024-11-12 06:38, Rong Xu wrote: > > I compared the System.map files from Klara Modin. The linker script is > > doing what I expected: relocating the unlikely executed functions to the > > beginning of the .text section. > > > > However, the problem is with the _stext symbol. It belongs to the > > .text section, so > > it is positioned after the unlikely (or hot) functions. But it really > > needs to be > > the start of the text section. > > > > I checked all vmlinux.lds.S in arch/, I found that most archs > > explicitly assign _stext to the same address as _text, with the > > following 3 exceptions: > > arch/sh/kernel/vmlinux.lds.S > > arch/mips/kernel/vmlinux.lds.S > > arch/sparc/kernel/vmlinux.lds.S > > > > Note that we already partially handled arch/sparc/kernel/vmlinux.lds.S > > for sparc64. > > But we need to handle sparc32 also. > > > > Additionally, the boot/compressed/vmlinux.lds.S also the TEXT_TEXT > > template. However, > > I presume these files do not generate the .text.unlikely. or > > .text.hot.* sections. > > > > I sent the following patch to Klara because I don't have an > > environment to build and test. > > ==================== > > diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S > > index 9ff55cb80a64..5f130af44247 100644 > > --- a/arch/mips/kernel/vmlinux.lds.S > > +++ b/arch/mips/kernel/vmlinux.lds.S > > @@ -61,6 +61,7 @@ SECTIONS > > /* read-only */ > > _text = .; /* Text and read-only data */ > > .text : { > > + _stext = .; > > TEXT_TEXT > > SCHED_TEXT > > LOCK_TEXT > > ====================== > > > > If Klara confirms the fix, I will send the patch for review. > > > > Thanks, > > > > -Rong > > > > This does indeed fix the issue for me. > > Thanks, > Tested-by: Klara Modin <klarasmodin@xxxxxxxxx>