• Thomas Gleixner's avatar
    x86: Sanitize linker script · 24a9c543
    Thomas Gleixner authored
    The section ordering in the text section is more than suboptimal:
    
        ALIGN_ENTRY_TEXT_BEGIN
        ENTRY_TEXT
        ALIGN_ENTRY_TEXT_END
        SOFTIRQENTRY_TEXT
        STATIC_CALL_TEXT
        INDIRECT_THUNK_TEXT
    
    ENTRY_TEXT is in a seperate PMD so it can be mapped into the cpu entry area
    when KPTI is enabled. That means the sections after it are also in a
    seperate PMD. That's wasteful especially as the indirect thunk text is a
    hotpath on retpoline enabled systems and the static call text is fairly hot
    on 32bit.
    
    Move the entry text section last so that the other sections share a PMD
    with the text before it. This is obviously just best effort and not
    guaranteed when the previous text is just at a PMD boundary.
    
    The text section placement needs an overhaul in general. There is e.g. no
    point to have debugfs, sysfs, cpuhotplug and other rarely used functions
    next to hot path text.
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20220915111143.614728935@infradead.org
    24a9c543
vmlinux.lds.S 12.4 KB