Intel Continues Prepping The Linux Kernel For X86S

Written by Michael Larabel in Intel on 12 March 2024 at 06:19 AM EDT. 64 Comments
INTEL
Nearly one year ago Intel published the X86S specification (formerly stylized as "X86-S") for simplifying the Intel architecture by removing support for 16-bit and 32-bit operating systems. X86S is a big step forward with dropping legacy mode, 5-level paging improvements, and other modernization improvements for x86_64. With the Linux 6.9 kernel more x86S bits are in place for this ongoing effort.

Sent out overnight were the x86 boot improvements for the Linux 6.9 merge window. This merge carries continued work on improving the x86 early start-up code to allow it to be position independent. Ultimately the goal there is allow the entire core kernel to be built with position independent code (-fPIC). Plus there are early console improvements, some micro-optimizations and cleanups, and then more X86S bits.

Of the X86S work in Linux 6.9 is for accommodating the removal of compatibility mode in ring 0 and thus the "trampoline_start64" code needed to be reworked. Intel Linux engineer Kirill Shutemov explained:
"The trampoline_start64() function is reworked to only enter compatibility mode if it is necessary to change the paging mode. If the CPU is already in the desired paging mode, it will proceed in long mode.

This change will allow a secondary CPU to boot on an X86S machine as long as the CPU is already in the correct paging mode.

In the future, there will be a mechanism to switch between paging modes without disabling paging."

And, yes, what was announced as X86-S is now known as X86S. Intel Linux developers have recently been referring to it as X86S and indeed the original Intel specification was quietly updated in November to v1.1 and with a revision history note that the name has indeed changed from X86-S to X86S.

X86S logo


In addition to the ongoing X86S work, Linux 6.9 is also notable for merging Intel FRED as another overhaul coming with future processors... Potentially at the same time as X86S.

All the x86/boot changes for Linux 6.9 are laid out in this pull request.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week