ARMv7中 KVM对虚拟化的实现(四)

本文分析了ARM平台上KVM/ARM与x86平台上的KVM x86虚拟化的功耗和性能。结果显示,尽管ARM在Hypercall和world切换上比x86慢,但在trap操作上更快。KVM/ARM在多核配置下,特别是Apache和MySQL工作负载,表现出更低的虚拟化开销。在功耗方面,KVM/ARM通常比KVM x86更节能,尤其是在支持VGIC/虚拟计时器的情况下。KVM/ARM的代码复杂度相对较低,得益于ARM硬件对虚拟化的支持。
摘要由CSDN通过智能技术生成
5.2 功耗和性能测量

表3展示了在ARM平台上使用KVM/ARM和在x86平台上使用KVM x86 进行虚拟化的各种微体系结构成本。测量结果以循环而不是时间的形式显示,以便在具有不同CPU频率的平台之间提供有用的比较。在可能的情况下,我们将为ARM平台显示两个数字,其中包含和不包含VGIC和虚拟计时器的支持。

Hypercall是两个世界交换机的开销,从虚拟机到主机,然后立即返回,不需要在主机中做任何工作。由于两个主要因素,与KVM x86相比,KVM/ARM在此操作中需要3到4倍的时钟周期。首先,在ARM上保存和恢复VGIC状态以使用虚拟中断的开销是很大的,可用的x86硬件还没有提供这种机制。在没有VGIC和虚拟时钟的ARM平台上,测量时不包括保存和恢复VGIC状态的开销,结果表明,该操作在ARM的两个world切换时VGIC状态的恢复和保存占用了一半的开销。其次,x86提供了硬件支持,可以在world切换时自动保存和恢复状态,这要快得多。ARM需要软件显式地保存和恢复状态,这提供了更大的灵活性,但成本更高。但是,如果没有VGIC状态,hypercall的开销只比x86服务器平台上硬件加速hypercall的开销多大约600个周期。ARM world切换的成本还没有优化,还可以进一步降低。例如,一个小补丁消除了不必要的原子操作,从而降低了大约300个时钟周期的hypercall

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新程序圆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值