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