今天合并到Linux 6.6 Git是一个新的补丁,用于修复影响基于Zen 4的处理器(如Ryzen 7000系列和EPYC 8004/9004系列)的AMD错误CPU。
合并到Linux内核是添加了大约十几行代码来影响最近发现的Zen 4错误。该问题是在未启用单线程间接分支预测器(STIBP)的情况下运行Zen 4时可能发生的未定义指令(#UD)异常。
禅宗4需要STIBP
作为默认安全缓解措施的一部分。STIBP被用作Spectre Variant Two保护的一部分。但是,对于那些在启动Linux内核时使用“缓解=关闭”或在尝试提高性能时更选择性地禁用CPU安全缓解的人来说,这种未定义的指令异常可能会错误地出现在这种配置中。
这个错误是在T2 Linux发行团队发现的
已报告
编译代码时出现随机非法指令生成错误。作为报告的一部分,报告了缓解措施=关闭,并且在不禁用缓解措施时,这些虚假的非法指令不会出现。
经过AMD的研究/测试,它现在被确认为Zen 4错误,并被确定为勘误表#1485。好消息是
此修复程序
性能影响可以忽略不计。此外,如前所述,只有当您最终禁用STIBP安全功能时,才会出现此错误。因此,那些开箱即用运行AMD Ryzen 7000系列或EPYC 8004/9004系列的人不会遇到这些虚假的非法指令错误,除非你禁用默认的安全保护——这不建议用于生产系统,而且目前“缓解=关闭”的好处对大多数工作负载来说往往很小。
While in Linux 6.6 Git as of today, the small erratum bug fix is marked for back-porting to existing stable Linux kernel series as well. This is a CPU hardware bug so other operating systems are presumably affected as well, but outside of Linux with the easy "mitigations=off" knob it's even less common on other operating systems for going through the steps to disable CPU security mitigations.