英特尔推进KVM虚拟机支持APX指令集,提升性能。
12月21日消息,随着Linux内核和编译器生态对英特尔Advanced Performance Extensions(APX,先进性能扩展)的支持逐步完善,虚拟化环境中的相关适配工作也在加速推进。 目前,随着Linux内核和编译器生态对英特尔APX技术的支持日益成熟,虚拟化平台的适配进程也在加快。这一进展表明,硬件与软件之间的协同优化正在不断深化,有助于提升系统整体性能,特别是在需要高计算密度和能效比的场景中。对于开发者和企业用户而言,这无疑是一个积极的信号,预示着未来在云计算、边缘计算等领域的应用将更加高效和灵活。
英特尔工程师已启动对KVM虚拟机(GuestVM)支持APX功能的推进工作,这将为未来基于新一代至强处理器的云计算与虚拟化应用打下基础。
自Linux 6.16版本起,Linux内核在基础设施层面已具备对APX的支持条件,同时GCC与LLVM/Clang等主流编译器工具链也已完成相应的适配工作。在此基础上,当前仍缺乏的关键环节是让运行在KVM上的来宾虚拟机能够真正调用APX指令集和寄存器扩展功能。 从技术发展的角度来看,这一进展标志着APX技术在开放源代码生态中正逐步走向成熟。然而,要实现完整的虚拟化支持,还需各方协同推进。KVM作为广泛使用的虚拟化平台,其对APX的支持将直接影响该技术在实际应用中的普及程度。未来,随着相关补丁的完善与落地,APX有望在更多场景中发挥其性能优势,进一步推动系统级优化与计算效率的提升。
英特尔工程师ChangS.Bae今日向内核社区提交了一组共16个补丁,主题为“为KVMx86虚拟机启用APX”。该补丁系列是在此前的RFC(征求意见稿)基础上形成的正式版本,已采纳KVM维护者PaoloBonzini等人的建议,并基于Linux 6.19-rc1进行开发。
与Intel AMX等指令集扩展类似,APX在虚拟化环境中也需要进行特殊处理。此次补丁主要涉及以下几个方面的调整:
首先,英特尔对通用寄存器(GPR)访问代码进行了重构。补丁将内部寄存器访问接口重命名为 kvm_gpr_read_raw () 和 kvm_gpr_write (),并在开启 CONFIG_KVM_APX 配置时,新增对扩展通用寄存器(EGPR)索引的支持,而 AMD 架构及 32 位构建则保持现有实现不变。
其次,该补丁完善了 VMX 对扩展寄存器索引的支持。与此前基于 XCR0.APX 状态判断不同,新方案仅依赖 APX 的 CPUID 枚举即可确认 VMCS 中扩展字段的可用性。相关逻辑同时覆盖了普通 VMX 与嵌套虚拟化(nested VMX)场景。
第三部分是改动最为显著的内容,即为APX新增的REX2前缀提供指令仿真支持。该补丁对原有模拟器代码进行了大幅优化,包括取消实际作用较小的JMPABS仿真、复用已有的操作码表结构,以及通过统一的辅助函数来解析REX和REX2位,从而降低代码复杂度,并确保与架构规范保持一致。
最后,该补丁还涉及APX功能的对外暴露及自测机制。这部分内容未修改CPUID的暴露逻辑和自测框架,仅对XCR0.APX的处理进行了调整,以明确防止与MPX功能发生冲突。同时,随着之前VMX逻辑的调整,相关的旧代码路径也一并被删除。
需要指出的是,Advanced Performance Extensions(APX)将首次随英特尔NovaLake和DiamondRapids处理器推出。特别是DiamondRapids,被定位为面向数据中心和云计算的重要一代Xeon平台,因此KVM虚拟机对APX的支持,对未来云实例的性能提升具有直接影响。 从行业发展的角度来看,这一技术的引入标志着英特尔在提升云计算性能方面迈出了关键一步。随着企业对计算效率和资源利用率的要求不断提高,APX所带来的性能优化将有助于提升虚拟化环境下的整体表现,进一步巩固Xeon在数据中心领域的竞争力。
从内核版本的更新节奏来看,社区正在评估这一系列补丁是否能够及时进入Linux 6.20或7.0的合并窗口。由于Ubuntu 26.04 LTS预计将采用该阶段的内核版本,一旦相关支持被合并进主线,将对虚拟化和云计算用户产生较大影响。