KVM(ARM) CPU虚拟化 (1)

本文介绍了ARM CPU虚拟化的关键点,包括多个特权等级支持、VM执行敏感指令的受控方式以及VM间的context switch。虚拟化的重点在于资源隔离和管理,KVM通过捕获敏感指令和异常来确保安全性。当VM执行特定操作时,会触发陷阱到Hypervisor,由Hypervisor配置寄存器HCR_EL2进行控制。异常处理涉及理解异常向量代码,根据ESR_EL2内容判断异常类型,并在处理后返回到EL1。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ARM CPU虚拟化的关键技术点:

  1. CPU支持多个特权等级,这样才可以比较好的对于敏感特权指令进行在高优先级受控, ARM支持EL0~EL3,其中虚拟化(Hypervisor运行在EL2,OS Kernel运行在EL1,用户态运行在EL0)
  2. VM执行敏感指令/操作受控 - 在更高级别的特权级受控执行,避免对别的VM产生影响
  3. 每个VM的每个vCPU运行在物理CPU上时进行context switch,即将之前运行的(host或者其他vCPU)各种相关寄存器保存到内存中,需要运行的vCPU必须的寄存器恢复到硬件寄存器中,然后运行 (和Linux的task switch类似的思想,只不过需要保存恢复的寄存器更多一些)
    总之,虚拟化的关键就在于拆分硬件资源并进行资源及操作的隔离。资源的拆分可以是直接拆分,也可以是分时复用。如果每个VM运行时所需要的资源完全可以在自己的特权级专用,而不需要被高特权级的Hypervisor进行运行时管理(没有Trap)性能是最高的
    Instruction Trap and emulation
    VM发生Tracp到Hypervisor的场景:
    1). 敏感指令执行
    HCR_EL2, Hypervisor Configuration Register
    Provides configuration controls for virtualization, including defining whether various operations are
    trapped to EL2.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值