本文将mark下ARM VHE(Virtualization Host Extensions)mode相关notes。

通常,寄主操作系统的内核部分运行在EL1,控制虚拟化的部分运行在EL2。然而,这种设计有一个明显的问题。VHE之前的Hypervisor通常需要设计成high-visor和low-visor两部分,前者运行在EL1,后者运行在EL2。分层设计在系统运行时会造成很多不必要的上下文切换,带来不少设计上的复杂性和性能开销。为了解决这个问题,虚拟化主机扩展 (Virtualization Host Extensions, VHE)应运而生。该特性由Armv8.1-A引入,可以让寄主操作系统的内核部分直接运行在EL2上。


参考资料:

  1. Hafnium – VHE Support
  2. To EL2, and Beyond!
  3. Virtualization host extensions
  4. Virtualisation for the Masses:Exposing KVM on Android
  5. Armv8架构虚拟化介绍