Linux 新补丁大幅提升英特尔嵌套虚拟机内存性能,最高提速约 2353 倍

抖音秀 热点资讯 2

11 月 23 日消息,据 Phoronix 今日报道,亚马逊 AWS 工程师周五为 Linux 内核提交了一组针对 KVM 的 VMX 代码更新,显著优化 KVM 嵌套虚拟化(nVMX)中非托管客户机内存的处理性能。

AWS 工程师弗雷德・格里福尔(Fred Griffoul)在补丁说明中指出,当前实现存在两大缺陷:

  • 缓存失效机制缺失:当内存槽(memslots)修改时,eVMCS 等内存页的缓存映射未及时失效;APIC 相关页面迁移后因缺少 mmu_notifier 回调通知导致映射错误

  • 高频映射开销过大:对非托管内存(如通过 mem = 参数或 guest_memfd 传递的内存)每次 L2 虚拟机进出均触发 memremap / memunmap 操作,产生显著性能损耗

新方案采用 gfn_to_pfn_cache 替代 kvm_host_map 机制,通过持久化映射实现:

  • 在页面 GPA 未变更时维持映射关系,消除每次 VM 进出周期的重映射开销

  • 通过 mmu_notifier 回调和内存槽生成检查确保映射更新

在 AWS EC2 Nitro 实例的合成微基准测试中,本次改动带来了显著的性能提升:

  • 内存映射操作提速约 17 倍

  • 分块取消映射操作提速约 2014 倍

  • 完整取消映射操作提速约 2353 倍