Intel Continues Prepping The Linux Kernel For X86S
![INTEL](/assets/categories/intel.webp)
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.
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.
64 Comments