ARM Virtualisation

目的

  • 基于虚拟化理论要求,解释ARM VHE扩展
  • 基于虚拟化实现模型,解析KVM实现要点
  • 记录后续虚拟化的发展方向

虚拟化理论基础

根据Popek and Goldberg virtualization requirements理论,
实现虚拟化的一个充分条件是针对VMM提供一套特权指令集来控制虚拟化资源,同时该理论也提供了一个简单的技术实现方案:trap-and-emulate。

todo: trap-and-emulate 架构图片

ARM VHE 扩展

v8.1扩展

  • 增加EL2,新增HYP模式,在该模式下处理VMM相关特权指令控制虚拟化资源,新增HYP模式中断向量表(HVBAR),CPU通过HVC或者SMC指令陷入HVC模式,并通过ERET返回EL1

todo: Host HYP Guest 转换

  • 新增IPA概念,增加MMU stage 2转换,通过SMMU stage2实现IPA到PA转换,所有TLB和Cache操作均带VMID,host上VMID为0。

todo: VA->IPA->PA转换图

  • 新增VGIC概念来加速IO中断虚拟化

  • 新增Hypervisor Syndrome Regiser,HYP模式下,CPU可以通过该寄存器获取进入HYP模式的原因。

  • 不支持nested
  • stage 2 页表类似LPAE

v8.3扩展

  • fdasfsa
  • fdsa范德萨

整体架构

  • VM lecture

技术选型

当前主流ARM虚拟化技术框架

  • KVM
    • storage: qemu storage stack overview
  • Xen
  • Docker

后续技术深入方向

* network: hwanju io virtualzation
* gpu: hwanju io virtualization
* memory: hwanju memory task aware 
* cpu: hwanju task aware schedule
* best for virtuazliation: IBM

依赖

  • UEFI必须使能HYP模式,并让Linux kernel从HYP模式启动
  • 只支持4KB页表

方案评估策略

附录

  • network: macvlan
  • storage: device mapper
  • virtio:
知道是不会有人点的,但万一有人呢:)