Re: [PATCH v6 3/7] Adjust symbol ordering in text output section

Klara Modin
2024-11-12T07:45:07Z

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@gmail.com>