FEAT_NV 应用场景

发布时间 2023-06-03 12:33:20作者: xiaoye45

FEAT_NV 应用场景

FEAT_NV 应用场景

场景

image

​​image

必要性

image

嵌套虚拟化是在虚拟机内运行虚拟机(vm)的规程。换句话说,嵌套管理程序就是运行多个级别的管理程序。随着虚拟化的新用例的增加,嵌套虚拟化变得越来越重要。例如,包括微软Windows在内的操作系统(操作系统)现在已经有了内置的管理程序来支持遗留的应用程序,并且需要嵌套的虚拟化支持才能在虚拟机中运行。类似地,在基础设施即服务(IaaS)云提供商之上部署虚拟机正变得越来越普遍,并且需要嵌套的虚拟化支持[12,14,22,43]。

虽然x86体系结构已经主导了服务器和云基础设施市场,但ARM体系结构正在利用其在移动和嵌入式领域的主导地位,进军云基础设施部署[19]。由于这些市场对嵌套虚拟化的需求,最近在最新的ARMv8.3体系结构[11]中增加了对嵌套虚拟化的体系结构支持。但是,目前还没有ARMv8.3硬件存在,因此,还没有为支持嵌套虚拟化的ARM开发的管理程序。虽然嵌套虚拟化可以在x86 [10]上提供合理的性能,但它在ARM上仍然是一种尚未开发的技术。鉴于虚拟化在ARM上的日益流行和嵌套用例,研究对ARM嵌套支持的未来是很重要的。

与x86 ARMv8.3嵌套虚拟化支持相比,它与x86类似,因为可以将来宾虚拟机管理程序指令配置为捕获到主机虚拟机管理程序。但是,核心的硬件虚拟化支持是不同的。我们将对x86的讨论限制在英特尔VT上,因为它在这里讨论的所有目的上都类似于AMD-V。ARM VE提供了一个单独的CPU特权级别EL2,具有自己的特性和注册状态,Intel VT提供了根和非根模式,完全与CPU特权级别正交,每个级别都支持相同的用户和内核模式功能。ARM和英特尔陷阱到各自的EL2和根模式,但根模式上的根和非根模式之间的转换是实现虚拟机控制结构(VMCS)驻留在正常内存,硬件状态切换到根模式时自动保存和恢复,例如当硬件陷阱从虚拟机到管理程序。相反,ARM有一个更简单的硬件机制来在EL1和EL2之间转换,但把它留给软件来决定需要保存和恢复什么状态,提供更多的灵活性来优化每个转换所做的事情。