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

Linux6.7全面改进x86CPU微码加载方式Linux6.7中对x86微代码加载的一些改进包括:在启用分页之前不在32位上加载微代码,以避免各种问题;重新修改CPU微代码的后期加载;后期加载的微代码现在对CPU热插拔操作更友好;以及确定后期微代码加载何时被认为是安全的最小微代码版本概念。x86处理器/微代码的亮点总结如下:-重组所需的代码,并在32位上添加临时initrd映射,以便加载器可以访问微码Blob。这本身就是为下一个重大改进做准备:-在启用分页之前,不要在32位加载微代码。在过去,处理这个问题会带来无尽的麻烦、问题、难看的代码和不必要的破解。而且从一开始就没有任何合理的理由这样做。因此,将32位加载改为在启用分页后进行,并再次将加载器代码变得"真正纯净"。-在英特尔系统中放弃混合微码步进加载--在整个系统中加载一个补丁就足够了-重新设计后期加载,跟踪哪些CPU已成功更新微代码,哪些尚未更新,并采取相应行动-将英特尔上的后期微代码加载移至NMI上下文,以确保所有线程上的并发加载-使后期加载对CPU热插拔安全,并为更新目的唤醒脱机线程-增加对最小修订版的支持,以确定后期微代码加载在机器上是否安全,并且微代码不会更改机器无法使用的软件可见功能,因为功能检测已经发生。粗略地说,最小版本号是系统当前必须加载的最小版本号,以便允许后期更新。-其他一些很好的清理、修复等。这些改进已合并到Linux6.7中:https://lore.kernel.org/lkml/20231103110600.GAZUTUGFjhoLm1KZzE@fat_crate.local/...PC版:https://www.cnbeta.com.tw/articles/soft/1396017.htm手机版:https://m.cnbeta.com.tw/view/1396017.htm

相关推荐

封面图片

英特尔发布Linux系统下的CPU微代码更新

英特尔发布Linux系统下的CPU微代码更新tip.git的x86/microcode分支对Linux内核的x86微代码处理进行了初步改进。这些补丁删除了一些无用的互斥,丢弃了一些旧的调试代码,并使CPU微代码加载支持在基于x86的系统上不再是一个选项,而是始终启用。在英特尔和AMD系统上,任何需要微码加载支持的"合理配置",现在都会启用该选项。早先的x86微代码加载改进至少已在TIP中排队等候,很可能成为即将到来的Linux6.6周期的一部分:https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/log/?h=x86/microcode英特尔至强Max服务器CPUThomasGleixner一直在领导改进英特尔Linux系统后期微码加载的工作。他在这个补丁系列中解释说:"企业用户希望延迟加载微代码。延迟加载是有问题的,因为它需要详细了解变更,并分析该变更是否修改了内核已经在使用的内容。大型企业客户拥有工程团队和深入的技术供应商支持。而普通管理员没有这样的资源,因此内核在后期加载后总是会有污点。英特尔最近在微码头中添加了一个新的保留字段,其中包含了CPU上必须运行的最小微码版本,以确保加载安全。在所有较旧的微代码版本中,该字段的值都是0,内核会认为这些微代码版本不安全。最小版本检查可通过Kconfig或内核命令行执行。这样,内核就会拒绝加载不安全的修订版。默认情况下,内核会像以前一样加载不安全的版本,并玷污内核。如果加载的是安全版本,内核就不会被玷污。但这并不能解决延迟加载的所有其他已知问题:-当前英特尔CPU上的延迟加载与启用超线程时的NMI相比是不安全的。如果在主处理器加载微代码时发生NMI,次处理器就会崩溃。-当微码更新修改了MWAIT时,使用MWAIT的软脱机SMT姊妹们也会造成损坏。在"nosmt"缓解措施的背景下,这是一种现实的情况。无论是核心代码还是英特尔特定代码,都根本不会处理这些问题。在尝试实现这一点时,我无意中发现了一些功能失常、复杂得可怕的冗余代码,因此我决定先清理这些代码,以便在干净的石板上添加新功能"。在Linux上,延迟加载微代码是指当系统已经启动并运行软件时,允许更新CPU微代码,而不是在CPU内核不忙的启动时间提前加载微代码。延迟加载CPU微代码对于超大规模企业、云服务提供商和其他大型企业尤其有用,因为它们希望以安全的名义快速部署CPU微代码更新,但又要避免系统宕机。目前还不清楚改进后的英特尔CPU微代码延迟加载是否能在v6.6内核中及时完成,但至少这项改进正在进行中。...PC版:https://www.cnbeta.com.tw/articles/soft/1377059.htm手机版:https://m.cnbeta.com.tw/view/1377059.htm

封面图片

AMD将每线程CPU微代码加载修复提交给Linux 6.1-rc2

AMD将每线程CPU微代码加载修复提交给Linux6.1-rc2一组"x86/紧急"补丁今天早上被送出,以便在今天的6.1-rc2版本之前拉入Linux内核。这个x86/紧急拉动请求有一些影响Linux内核x86/x86_64CPU代码的修复。有一些拓扑结构的修复,各种编译器处理检查的清理,英特尔perfLBR的修复,FPU状态设置的修复,也许最引人注目的是对AMDCPU微代码加载器的修复。PC版:https://www.cnbeta.com/articles/soft/1330143.htm手机版:https://m.cnbeta.com/view/1330143.htm

封面图片

英特尔继续为X86S准备Linux内核

英特尔继续为X86S准备Linux内核一夜之间,Linux6.9合并窗口中的x86启动改进就已发布。这次合并将继续改进x86早期启动代码,使其与位置无关。最终的目标是让整个核心内核都能使用位置独立代码(-fPIC)构建。此外,还有早期控制台改进、一些微优化和清理,以及更多X86S位。在Linux6.9中的X86S工作中,有一部分是为了适应在Ring0中移除兼容模式,因此需要重新编写"trampoline_start64"代码。英特尔Linux工程师基里尔-舒特莫夫(KirillShutemov)解释说:"重新修改了trampoline_start64()函数,只有在需要更改分页模式时才进入兼容模式。如果CPU已经处于所需的分页模式,它将在长模式下继续运行。只要CPU已经处于正确的分页模式,这一修改将允许辅助CPU在X86S机器上启动。未来,将有一种机制可以在分页模式之间进行切换,而无需禁用分页模式。"是的,原来公布的X86-S现在被称为X86S。英特尔Linux开发人员最近一直称其为X86S,而事实上,英特尔原始规范已于11月悄然更新为v1.1,并在修订历史中注明名称确实已从X86-S变为X86S。除了正在进行的X86S工作外,Linux6.9还因合并英特尔FRED而备受关注,这也是未来处理器的另一次大修......有可能与X86S同时进行。Linux6.9的所有X86/boot改动都在此pullrequest中列出。...PC版:https://www.cnbeta.com.tw/articles/soft/1423399.htm手机版:https://m.cnbeta.com.tw/view/1423399.htm

封面图片

Linux Kernel 6.7 生命周期结束,开发者敦促用户升级到 Linux 6.8

LinuxKernel6.7生命周期结束,开发者敦促用户升级到Linux6.8著名的Linux内核维护者葛雷格·克罗-哈曼于4月3日周三宣布Linux6.7内核系列生命周期结束(EOL),并敦促用户升级到Linux6.8内核。Linux6.7内核于2024年1月7日发布,引入了对NVIDIA的GSP固件在Nouveau开源图形驱动中的支持、Btrfs文件系统的新功能、EXT4文件系统的改进、一系列网络增强功能,以及大量新的和更新的驱动程序,以提供更好的硬件支持。在仅进行了12次维护更新之后,Linux6.7内核系列现在被标记为EOL(生命周期结束),这意味着它将不再收到错误和安全修复。现在敦促使用Linux6.7内核的用户升级到Linux6.8内核版本。——

封面图片

Intel将精简x86 CPU架构:转向纯血64位

Intel将精简x86CPU架构:转向纯血64位从历史来看,40多年前8086处理器问世时,指令集是16位的,1985年803886问世时带来了32位支持,2004年Intel推出了64位指令集(跟AMD的64位是兼容的),现在已过去20年左右。为了支持这些架构,现在的系统及软件设计得也比较复杂,针对16位、32位等旧架构要做一系列代码转换。从2005年的WinXP系统开始,16位CPU被淘汰,现在主要是32位、64位,但还是很复杂,Intel现在发布了白皮书,向外界试探只保留64位模式的可能。只支持纯血64位的好处不用说,不论硬件架构还是软件开发都会简化,但是这个过程中也要删减一些功能,包括16位寻址、过时的IO端口等等,而且还需要OS系统及软件的配合。为了解决64位模式运行旧版系统的问题,Intel的计划是通过支持硬件虚拟化VMX的虚拟软件方案来解决。Intel已经把这些提议写在了白皮书中,感兴趣的可以参考这里的页面,转向纯64位模式并不是简单的事,可能需要很多年才能实现,不过Intel带头迈出这一步,还是值得期待的。...PC版:https://www.cnbeta.com.tw/articles/soft/1360767.htm手机版:https://m.cnbeta.com.tw/view/1360767.htm

封面图片

Linux Kernel 6.7 正式发布

LinuxKernel6.7正式发布LinusTorvalds宣布正式推出LinuxKernel6.7,引入了多项新功能和改进。据称此版本拥有超过1.7万个非合并提交,以及1000多个合并提交,是迄今为止Linux最大的内核版本之一。主要变化:已合并实验性的Bcachefs文件系统;默认启用IntelMeteorLake图形支持,同时还引入了针对IntelXe₂LunarLake图形的支持等。——

🔍 发送关键词来寻找群组、频道或视频。

启动SOSO机器人