Linux 6.7全面改进x86 CPU微码加载方式

|----|----------------------------------------------------------------------------------------------------------------------|
| 导读 | 最近,社区在清理 Linux 上的 Intel/AMD x86 CPU 微代码加载方面做了大量的工作,这些工作现已合并到 Linux 6.7 中。 |

由于在启动时加载 CPU 微代码对于减少不断出现的新 CPU 安全漏洞以及有时解决功能问题非常重要,Thomas Gleixner 最近开始清理 x86 CPU 微代码加载功能,并在此过程中进行了各种改进。

Linux 6.7 中对 x86 微代码加载的一些改进包括:在启用分页之前不在 32 位上加载微代码,以避免各种问题;重新修改 CPU 微代码的后期加载;后期加载的微代码现在对 CPU 热插拔操作更友好;以及确定后期微代码加载何时被认为是安全的最小微代码版本概念。

x86 处理器/微代码的亮点总结如下:

-- 重组所需的代码,并在 32 位上添加临时 initrd 映射,以便加载器可以访问微码 Blob。这本身就是为下一个重大改进做准备:

-- 在启用分页之前,不要在 32 位加载微代码。在过去,处理这个问题会带来无尽的麻烦、问题、难看的代码和不必要的破解。而且从一开始就没有任何合理的理由这样做。因此,将 32 位加载改为在启用分页后进行,并再次将加载器代码变得"真正纯净"。

-- 在英特尔系统中放弃混合微码步进加载--在整个系统中加载一个补丁就足够了

-- 重新设计后期加载,跟踪哪些 CPU 已成功更新微代码,哪些尚未更新,并采取相应行动

-- 将英特尔上的后期微代码加载移至 NMI 上下文,以确保所有线程上的并发加载

-- 使后期加载对 CPU 热插拔安全,并为更新目的唤醒脱机线程

-- 增加对最小修订版的支持,以确定后期微代码加载在机器上是否安全,并且微代码不会更改机器无法使用的软件可见功能,因为功能检测已经发生。粗略地说,最小版本号是系统当前必须加载的最小版本号,以便允许后期更新。

-- 其他一些很好的清理、修复等。

这些改进已合并到 Linux 6.7 中:

https://lore.kernel.org/lkml/20231103110600.GAZUTUGFjhoLm1KZzE@fat_crate.local/

相关推荐
AAA@峥7 分钟前
CentOS7 搭建 ELK 企业级日志集群:从部署到日志可视化完整实战
运维·elk·centos
ZKNOW甄知科技13 分钟前
燕千云深度集成飞书:以AI之力,开启无感IT运维体验
大数据·运维·网络·数据库·人工智能·低代码·集成学习
叮咚侠20 分钟前
docker安装的kibana+elasticsearch,突然kibana界面打不开了
运维·jenkins
nVisual22 分钟前
数据中心机柜负载均衡与三相相位监控方案
运维·网络·负载均衡·数据中心布线·综合布线管理软件
国服第二切图仔25 分钟前
02-breakpoint-system
运维·harmonyos
Molesidy27 分钟前
【GUI】【AWTK】基于开阳平台的GUI界面设计环境搭建
linux·gui·awtk
RisunJan38 分钟前
Linux命令-semanage(SELinux 策略管理)
linux·运维·服务器
流浪0011 小时前
Linux系统篇 21:文件(五)——动静态库、ELF 底层原理全解
linux·运维·服务器
snow@li1 小时前
Spring Boot:项目服务器完整部署教程(零基础可直接实操)
服务器·spring boot·后端
Dawn-bit1 小时前
Linux救援模式和系统恢复
linux·运维·服务器·云计算·运维开发