论坛风格切换
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
购买邀请后未收到邀请联系sdbeta@qq.com
  • 357阅读
  • 1回复

[业界新闻]英特尔发布Linux系统下的CPU微代码更新 [复制链接]

上一主题 下一主题
 

发帖
7254
今日发帖
最后登录
2025-01-08
只看楼主 倒序阅读 使用道具 楼主  发表于: 2023-08-15 08:56:07
  英特尔工程师正在努力增强x86_64 CPU微代码在Linux下的更新体验,尤其是这项工作的最终目标是更好地支持英特尔系统在Linux上的后期微代码加载,主要关注点是英特尔服务器/企业用户。 U'5p;j)_  
j `3IizN2  
  tip.git的x86/microcode分支对Linux内核的x86微代码处理进行了初步改进。这些补丁删除了一些无用的互斥,丢弃了一些旧的调试代码,并使CPU微代码加载支持在基于x86的系统上不再是一个选项,而是始终启用。在英特尔和AMD系统上,任何需要微码加载支持的"合理配置",现在都会启用该选项。 B@\0b|  
R~TG5^(  
  早先的x86微代码加载改进至少已在TIP中排队等候,很可能成为即将到来的Linux 6.6周期的一部分: V)`Q0}  
aOoWB^;6  
  https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/log/?h=x86/microcode cY~lDLyB  
r[j@@[)"  
  英特尔至强Max服务器CPU Mwj7*pxUh  
+'` ^ N  
  Thomas Gleixner一直在领导改进英特尔Linux系统后期微码加载的工作。他在这个补丁系列中解释说: m]=G73jzO  
/~<Przw  
  "企业用户希望延迟加载微代码。延迟加载是有问题的,因为它需要详细了解变更,并分析该变更是否修改了内核已经在使用的内容。大型企业客户拥有工程团队和深入的技术供应商支持。而普通管理员没有这样的资源,因此内核在后期加载后总是会有污点。 a,M/i&.e`  
!a5e{QG0  
  英特尔最近在微码头中添加了一个新的保留字段,其中包含了CPU上必须运行的最小微码版本,以确保加载安全。在所有较旧的微代码版本中,该字段的值都是0,内核会认为这些微代码版本不安全。最小版本检查可通过Kconfig或内核命令行执行。这样,内核就会拒绝加载不安全的修订版。默认情况下,内核会像以前一样加载不安全的版本,并玷污内核。如果加载的是安全版本,内核就不会被玷污。 i~HS"n  
`wLmGv+V  
  但这并不能解决延迟加载的所有其他已知问题: Uf[Gs/!NV  
SnO,-Rg  
  -当前英特尔CPU上的延迟加载与启用超线程时的NMI相比是不安全的。如果在主处理器加载微代码时发生NMI,次处理器就会崩溃。 L#IY6t  
tE=$#  
  -当微码更新修改了MWAIT时,使用MWAIT的软脱机SMT姊妹们也会造成损坏。在"nosmt"缓解措施的背景下,这是一种现实的情况。 9B3}LVg\  
_&@cU<bdee  
  无论是核心代码还是英特尔特定代码,都根本不会处理这些问题。在尝试实现这一点时,我无意中发现了一些功能失常、复杂得可怕的冗余代码,因此我决定先清理这些代码,以便在干净的石板上添加新功能"。 i2Gh!5]f  
ju"j?2+F  
  在Linux上,延迟加载微代码是指当系统已经启动并运行软件时,允许更新CPU微代码,而不是在CPU内核不忙的启动时间提前加载微代码。延迟加载CPU微代码对于超大规模企业、云服务提供商和其他大型企业尤其有用,因为它们希望以安全的名义快速部署CPU微代码更新,但又要避免系统宕机。目前还不清楚改进后的英特尔CPU微代码延迟加载是否能在v6.6内核中及时完成,但至少这项改进正在进行中。 a9nXh6  
离线zzl311

发帖
2033
今日发帖
最后登录
2024-11-25
只看该作者 沙发  发表于: 2023-08-15 22:50:00
谢谢分享。