Linux 6.19 的基于内核的虚拟机 “KVM” 更新包括 AMD 为处理最多 4,096 个虚拟 CPU 的 VM 所做的准备工作。
就在几年前,AMD 的 Linux 工程师还在为支持超过 255 个 vCPU 的 x2AVIC 支持进行开发。现在,Linux 6.19 已经集成了他们的 x2AVIC 修改,以支持高达 4,096 个 vCPU。

Linux 6.19 版本中,x2AVIC 的支持得到了改进,可以支持多达 4096 个虚拟 CPU。具体具备此功能的平台并未提及,因为 Linux 的补丁只是检查 CPUID_Fn8000000A_ECX[x2AVIC_EXT] 特性位。此前的限制是 512 个虚拟 CPU,而这个“扩展 AVIC”(x2AVIC_EXT)则将其提升至可能的 4096 个虚拟 CPU 数量。
支持 AVIC 地址多达 4096 个虚拟 CPU 的功能是在 Linux 6.19 合并窗口期间作为 KVM 功能变更的一部分合并的。此次 KVM 的拉取请求还包括在 AMD 侧的各种 SVM 修复以及添加 KVM_X86_SNP_POLICY_BITS 以向用户空间广告 SEV 安全嵌套分页(SNP)策略位。
在 Intel 侧,KVM 的拉取请求重写了 TDX 锁定代码,以解决之前内核中各种“奇怪”和“丑陋”的代码,并处理系统性竞争条件的问题。
KVM 还增加了对 AVX MOV 指令的模拟器支持,清理了 KVM 对 MMIO 陈旧数据和 L1TF 缓解措施的处理,并进行了其他各种改进。
转自 Linux 6.19 Lands x2AVIC Patches For AMD SVM Handling Up To 4096 vCPUs – Phoronix
Linuxeden开源社区