X86/core更改已于今天提交给现已打开的Linux6.9合并窗口。在其他更改中,Linux内核KCONFIG中的x86CPU安全缓解选项已在适当的地方进行了调整,以更清楚地说明这些选项/功能是用于安全缓解的。
Ingo Molnar已经提交了针对Linux6.9的x86/core更改,而“最大的更改”是重新编写每个CPU的代码以支持GCC命名地址空间功能。拉取请求将这个GCC命名的地址空间的好处解释为:
-这允许C代码通过用这样的属性声明的变量来访问GS和FS段相对内存,这允许编译器比以前的内联汇编代码更好地优化这些访问。
-该系列还包括针对各种PERPU访问方法的一些微优化,以及对汇编代码中%GS访问的一些清理。
X86/core ull还进行了其他一些代码改进,修改了x86空闲代码,并清理了CPU缓解KCONFIG选项,使它们更易于遵循和维护。
对于KCONFIG安全缓解更改,它们现在都带有明确的前缀“CONFIG_RESIMATION_*”,以避免用户混淆。受影响的选项包括CONFIG_GDS_FORCE_RESIA、CONFIG_CPU_IBPB_ENTRY、CONFIG_CALL_DEPTION_TRACING、CONFIG_PAGE_TABLE_ISOLATION、CONFIG_RETPOLINE、CONFIG_SLS、CONFIG_CPU_UNET_ENTRY、CONFIG_CPU_IBRS_ENTRY、CONFIG_CPU_SRSO和CONFIG_RETHUNK。只要阅读Kconfig的名字,一些用户可能会认为“SLS”可能是一些功能,而实际上它是使内核代码能够减少直线猜测的旋钮。同样,Call_Depth_Tracing、RETPOLINE等也不太为大众所熟悉,可能会导致混淆。因此,Linux 6.9+的新选项名称为CONFIG_RESIGNSION_GDS_FORCE、CONFIG_RESIA_IBPB_ENTRY、CONFIG_RESICATION_CALL_DEPTION_TRACKING、CONFIG_RESIMATION_PAGE_TABLE、CONFIG_RETPOLINE、CONFIG_RESIMATION_SLS、CONFIG_REMICATION_UNET_ENTRY、CONFIG_REMICATION_IBRS_ENTRY、CONFIG_REMICATION_SRSO和CONFIG_RETHUNK。
这些KCONFIG缓解选项名称的更改也使那些希望显式禁止构建带有缓解的内核或希望轻松查看可以为给定内核配置启用哪些缓解选项的人更容易使用这些选项。
有关Linux 6.9的x86/核心功能更改的更多详细信息,请访问此拉入请求.