并从先前时代的的

译者序

本文翻译自Embedded Hypervisor Xvisor: A Comparative
Analysis

设想化(Virtualization)这种源点于上世纪60年份IBM大型机系统的本事在管理器性能小幅提高的立时,再一次连忙提欢愉起,并从开始的一段时期的的裸机设想化(Type-I虚构化)技巧初阶,演变出长机虚构化(Type-II设想化)混合设想化(Hybrid虚构化)等更复杂的设想化模型,并在那基础山发展出了立即最销路广的云计算技能,比非常大地下落了IT开支,加强了系统的安全性,可信性和扩充性。

嵌入式系统则是虚构化工夫在嵌入式领域的运用。文中的Xvisor正是生机勃勃款开源的运用裸机设想化本领的轻量级嵌入式Hypervisor,具有非凡的代码架会谈和可移植性,补助ARM和X86管理器的半虚构化传说硬件的全设想化技术。

文中围绕嵌入式Hypervisor的5个基本部分 – 顾客机IO事件模拟、主机中断、
锁同步延迟、内部存款和储蓄器管理和内存占用,基于当下最风靡的ARM处理器架构,实行了深入的阐释和自己检查自纠。

翻译在翻译时尽恐怕逐词翻译,可是一些语句为了更明亮的发布依照译者的理解进行了转述。若有不妥,请参见原著。

摘要

出于与裁减开销、升高财富利用率和更加高的质量直接相关,设想化技能已经在嵌入式系统辽宁中国广播公司大流行。为了在嵌入式系统的严加时间约束和低内部存款和储蓄器占用的设想化碰到中取得飞快的天性,我们须要神速的Hypervisor(设想机管理器)。纵然未来早原来就有了一些开源的Hypervisor,比方Xen,Linux
KVM和OKL4
Microvisor,那仍为首先篇介绍开源嵌入式设想机管理器Xvisor(eXtensible
Versatile
hypervisor),并从对整个种类天性的震慑上,与多个常用设想机管理器KVM和Xen实行相比较的舆论。实验证实,在ARM管理器框架结构上,Xvisor具备更低的CPU成本,更加高的内部存款和储蓄器带宽,更低的锁同步延迟和编造放大计时器中断开支,并且能够周详晋级嵌入式系统品质。

关键词:嵌入式系统; 虚构化; Xen, Linux KVM;
Xvisor;ARM;Hypervisor(虚构机管理器);

1. 介绍

这几天,多核嵌入式系统必要的狠抓已经起来引领虚构化技艺在嵌入式系统中的探讨。嵌入式系统日常兼有能源有限,实时性节制,高质量必要,增进的应用程序栈须求(必须采取有限外设)等特色[参谋文献1]。

设想化技巧提供了在单核或多核处理器上以虚构机(VM或顾客机)格局运维多少个操作系统的形式。各样客户机械运输营在多少个或四个虚构管理单元(vCPU)上。进而,三个客户机的具有vCPU(虚拟CPU)同其余三个客商机的vCPU完全割裂,然而分享同意气风发套外设。

据此,设想化的运用提供了之类优势[参照他事他说加以考查文献2]:

  1. 千古运营在分裂器具上的劳动以往得以看成多少个VM运维在同叁个装置上;
  2. 在同三个设备上统黄金年代操作系统的实时个性和通用指标天性,即在不一致的VM中奉行实时程序和通用程序[参照他事他说加以考察文献3];
  3. 越来越好的容错性;
  4. 提供高可信赖应用间的隔开性。

同等的,嵌入式虚构化已经有在如下方面有力的表达了它的技能:

  1. NokiaEvoke,第贰个设想化手提式有线电话机[参照文献4];
  2. 工业自动化,设想化允许增加额外的接收而没有需要充实越来越多的管理单元[参谋文献5];
  3. 小车能够透过在若干个相互隔开分离的VM(虚构机)上独家运营娱乐音信操作系统、AUTOSATiguan(小车开放系统架构)操作系统和RTOS(实时操作系统),从而使得七个劳务能够在同样套硬件上运维[参照他事他说加以考查文献6];
  4. 别的客商案例,举例零售和博彩行当。

基于下边的虚构,文中的解析性斟酌将新的嵌入式Hypervisor –
Xvisor与2个现有的嵌入式开源Hypervisor – KVM/Xen进行比较:

  1. 此次商量基于ARM架构。那是出于新型的ARM管理器架构已经提供了硬件虚构化扩张,並且ARM管理器在嵌入式系统中早就获得了普及应用。别的,这3个Hypervisor共有的的绝大大多板级补助包(BSP)都利用了ARM架构管理器。

  2. KVM和Xen被入选作为对照的虚构机处理器,是依靠如下原因:

    • ARM架构帮衬[参照他事他说加以考查文献7,8];
    • 同意大家从不其余约束的征求品质数据的开源天性[参照他事他说加以考察文献9];
    • 与Xvisor援助相符的单板;
    • 在嵌入式系统中得到了利用。
  3. 试验应用小型基准测量试验工具在客商机上进行测量试验。那些测量试验工具测验内部存储器访谈,Cache(高速缓存)访谈,整形操作,职务管理等。那个操作上的性质加强能够升级系统的全部质量,不疑似那么些专一于测量检验某种特殊工作负荷(举例Web服务器,内核编写翻译,图形渲染等)的宏基准测量检验工具。

  4. 试验仅使用通用目标操作系统(GPOS)Linux作为客商机。因为,那是唯意气风发可被那3种Hypervisor补助的客商机操作系统。近日并未有一个通用的实时操作系统能够同不常间为那3种ypervisor所扶持。因而时间约束测量试验将通过如下因素的吞吐量测量检验来奉行:

    • Hypervisor的低内部存款和储蓄器和CPU开销;
    • Hypervisor最小负荷意况下的顾客机调解作用。

Xen,KVM和Xvisor实现的印证和界定的座谈如下所示:

  • 正文第2章解释了虚构化才干的分类;
  • 本文第3章介绍了Xvisor并提供一个开源设想机管理器Xen和KVM的轮廓。影响到比较因素的关键组件的达成细节的解说在三回九转章节中会被明确表达。后续章节将囊括二个基于ARM管理器架构的上述3种Hypervisor的相持统一深入分析[参照他事他说加以考查文献10]。
  • 我们在第4描述客商机IO模拟,而在第5,6,7,8章陈说主机中断管理,锁同步机制,内部存款和储蓄器管理和内存占用。
  • 作者们剖析测量试验时用到的应用程序基准测量试验程序的简易表达放在第9章,测量试验结果放在随后的第10章,而结论则放在文末。

2. 虚构化才能分类

依赖如下两本性状[参谋文献11],大家把设想化手艺划分为5类:

  • Hypervisor设计;
  • 图1所示的虚构化情势。

图片 1

相应的,设想化才具分类在经过客商机获取的质量度量中扮演器重要剧中人物。

2.1 Hypervisor设计

Hypervisor的剧中人物是硬件和虚构机之间的接口。这几个Hypervisor的完毕作风决定了她们作为设想化管理器的操作作用。授予他们的贯彻,全数Hypervisor都属于下面3种设计分类之生龙活虎:

  1. 全盘宏内核设计

    一起宏内核Hypervisor使用叁个纯净的软件层来肩负主机硬件访问,CPU虚构化和客商机IO模拟。比方XvisorVMware
    ESXi Server
    [参照他事他说加以考察文献12]。

  2. 有个别宏内核设计

    意气风发对宏内核Hypervisor平时是一个通用指标宏内核操作系统(譬喻Linux,FreeBSD,NETBSD,Windows等)的恢宏。他们在操作系统内核帮忙主机硬件访问和CPU虚构化,并经过顾客空间软件接济顾客机IO模拟。举例Linux
    KVM
    VMware Workstation[参谋文献13]。

  3. 微内核设计

    微内核Hypervisor平日是在Hypervisor内核种提供基本的主机硬件访问和CPU虚构化效用的轻量级微内核。它们依赖于贰个管理VM来协助全部主机的硬件访谈,客户机IO模拟和别的服务。那个微内核Hypervisor中的一些在叁个分其他驱动VM上运维每三个主机设备驱动程序并非在通用处理VM上运转。比方Xen微软Hyper-V[参谋文献14],OKL4
    Microvisor
    [参照他事他说加以调查文献15]和INTEGRITY Multivisor[参谋文献16]。

2.2 设想化情势

设想化情势决定了力所能致在Hypervisor上运营的客商机的品类[参照他事他说加以考察文献17,18]:

  1. 全设想化

    透过提供系统虚构机(举例模拟相像于实际硬件的整体系统),允许未经纠正的客商机操作系统作为客户机运行。(译者注:该情势供给依靠硬件的设想化辅助,例如X86架构英特尔-V/AMDVT,ARMv8和Power架构的虚构化profile等。)

  2. 半设想化

    经过提供Hypercall(设想机调用接口),允许校勘过的的顾客机操作系统作为客商机械运输转。这些格局须求顾客机使用Hypercall来进行种种IO操作(比如,网络收发,块读写,终端读写等等)和在少数时候实践某个重大指令。那几个Hypercall会触发几个trap(陷阱)中断以步入Hypervisor。这一个trap中断基于Hypercall参数,使得Hypervisor为客商机提供希望的劳动。

  3. 嵌入式系统的开源Hypervisor

上边是多少个开源虚构机管理器Xen和KVM的一个大致介绍,用于在Hypervisor切磋中跟Xvisor举办自己检查自纠。

鉴于大家探讨中对品质比较的关系,大家陈说了这几个Hypervisor中已知的导致客商机运转并因而影响全部虚构化嵌入式系统特性的系统组件的完结细节。那包含各个Hypervisor如哪儿理CPU虚拟化,客商机IO模拟和主机硬件访问。别的,各类Hypervisor的有些关键优势也会被聊起。

2.1 XEN

如图2所示,Xen
Hypervisor是一个支撑全虚构化和半设想化客商机的微内核Hypervisor。Xen
Hypervisor内核是七个轻量级微内核,提供:

  • CPU虚拟化;
  • MMU虚拟化:
  • 虚构中断管理;
  • 客商机间通信[参考文献19]。

Domain(域)是Xen内核相应于虚构机或顾客机的概念。

Domain0(Dom0)是多个风格迥异类其他域,运营着贰个Linux内核的校正版本。Dommain0必须运转在三个比此外别的VM或顾客机更加高的先行级上,而且有所对主机硬件的一心访谈权限。Dom0的最主要目标是利用Linux内核提供IO虚构化和客商机处理服务。

DomainU(DomU)相应于运作着二个客商机操作系统的客商设想机。顾客机的IO事件模拟和半设想化通过DomU和Dom0之间的通信来贯彻。这一目标通过利用Xen事件通道来完结。半虚拟化顾客机,相应于DomU
PVM,使用Xen事件通道来访问Dom0半设想化IO服务。不过,全虚构化客商机,相应于DomU
HVM,使用运维在Dom0客户空间中的QEMU来模拟客户机IO事件。

具有用来保管顾客机或域的客商接口都通过运维在Dom0客商控件的Xen工具栈来完结。未有Dom0,Xen不可能提供DomU
PVM或然DomU HVM。
图片 2
Xen最重大的优势是应用Linux内核作为Dom0,因为这能协助Xen重用Linux内核现存的道具驱动和其它一些。可是,那么些优势带动了后头章节将会涉嫌的额外轮代理公司价。也正是说,作为Dom0运转的Linux内核比一向运营在真实硬件上(未有Xen)微微慢了几许。那是因为,Dom0只是Xen的另三个域,有它和煦的嵌套页表,並且只怕被Xen调治器调治出去。

2.2 KVM

KVM(基于内核的虚构机)是一个支撑全设想化和半虚构化才干的有的宏内核Hypervisor。KVM首要提供全虚构化顾客机,并以可选的VirtIO设备[参照他事他说加以侦查文献20]的款式提供半设想化帮助。
图片 3
KVM增加Linux内核的执行格局以允许Linux作为三个Hypervisor来职业。除了本来就有的2种奉行格局(内核格局和客户方式),客商机形式被作为后生可畏种新的方式加上到Linux内核中。这种艺术允许客商机操作系统与主机操作系统运营在同风姿罗曼蒂克的执行形式下(除了某个特殊指令和贮存器访问),并且IO访谈将沦为到主机Linux内核。主机Linux内核将把多少个设想机视作多个QEMU进程。KVM只好在主机内核上设想化CPU,并且信任于运作在客户控件的QEMU来管理顾客机IO事件的效仿和半设想化。

如图2所示,KVM包罗2个根本组件:

  1. 基础空间字符设备驱动,通过贰个字符设备文件/dev/kvm提供CPU虚构化服务和内部存款和储蓄器设想化服务;
  2. 提供顾客机硬件模拟的客户空间模拟器(平日是QEMU)。

与那多少个零件之间的劳动诉求通信,比方虚构机和vCPU的创办,常常经过/dev/kvm设备文件的IOCTQX56L操作来管理。

KVM最重视的优势(相通于Xen)是运用Linux内核作为主机内核。那样有帮忙KVM重用Linux内核现成的器械驱动和任何一些。可是,由于KVM注重于嵌套页表故障机制的客户机格局到主机格局的设想机切换,特殊指令陷阱(Trap),主机中断,顾客机IO事件,和另三个从主机情势唤醒用户机推行的设想机切换,这一个优势也促成了KVM全部品质本质上的减退。

2.3 Xvisor

图4中的Xvisor是一个扶植全虚构化和半虚构化技能的完全宏内核Hypervisor。它的目标是提供三个仅需少许种类开辟和相当小内部存储器占用的在嵌入式系统中动用的轻量级Hypervisor。Xvisor重要提供全设想化顾客机,并以VirtIO设备[参照他事他说加以考察文献20]的款型提供半设想化匡助。
图片 4

Xvisor的持有骨干组件,比方CPU设想化,顾客机IO模拟,后端线程,半虚拟化服务,管理服务和设施驱动,都充作贰个独自的软件层运行,无需其它需要的工具可能二进制文件。

顾客机操作系统运转在Xvisor上,具备越来越少的特权;而Xvisor的兑现担当调用标准vCPU。此外,全体设备驱动和拘禁效果的后端管理运转在不富有最高优先级的遗孤vCPU(未有分配给有些顾客机的vCPU)上。客户机配置新闻以设施树(Device
Tree)[参照他事他说加以考察文献21]的款型维护。这种格局通过行使设备树脚本(DTS),使得顾客机硬件新闻的爱护越发便于。换句话说,为嵌入式系统定制贰个设想机时无需改进代码。

Xvisor最要紧的优势是运作在提供具备虚构化相关服务的万丈特权等级上的纯净软件层。不像KVM,Xvisor的上下文切换超轻量级(参见第5章),由此嵌套页表、特殊指令陷阱、主机中断和顾客机IO事件等的管理也充裕便捷。进而,全体器材驱动都看成Xvisor的生龙活虎有的直接运营,具有完全的特权而且未有嵌套页表,以担保不会现出品质退化。别的,Xvisor的vCPU调治器是借助单CPU的,不管理多核系统的载荷均衡。在Xvisor中,多核系统的载重均衡器是三个分开的片段,独立于vCPU调治器(不像KVM和XEN)。在Xvisor中,vCPU调解器和负载均衡器都以可扩展的。

Xvisor唯风流倜傥的节制是缺乏Linux这样丰裕的单板和配备驱动。为了管理那几个界定,Xvisor提供了Linux宽容层头文件以造福从Linux内核移植设备驱动框架和设施驱动。即便不可能完全清除难题,移植成本也足以小幅度压缩。

4. 客商机IO事件模拟

嵌入式系统供给作为虚构机(VM)或客商机运行守旧软件。守旧嵌入式软件也许希望要求Hypervisor模拟的特种硬件。这正是干什么Hypervisor必得尽量减小客户机IO事件模拟的成本。前面包车型大巴小章节解释了这几天聊起的Hypervisor在ARM管理器框架结构上模拟的顾客机IO事件的生命周期。注意,那相当的重大。因为在这里些Hypervisor中,顾客机IO事件流在全部计算机架构满含ARM上都是相符的。

4.1 Xen ARM

图5显得了Xen ARM用于DomU
HVM(全设想化顾客机)的客商机IO事件模拟的生命周期。从标识1开始,三个客商机IO事件被触发,然后使用标识2和标识3所示的Xen事件通道转载到Dom0内核。随后,运转在Dom0顾客空间的QEMU在评释4仿照客户机IO事件。最终在标记5,调节重回到DomU。

图中所示流程导致了一定数量的支付。首先,即使已经拓展过优化,基于域间通讯的Xen事件通道或然具备非零费用。其次,Dom0内核到顾客空间和相反方向的上下文切换增添了顾客机IO事件模拟的花费。
图片 5

4.2 KVM ARM

图6出示了客商机IO事件模拟在KVM
ARM上的拍卖流程。图中现象最初在标识1,即叁个顾客机IO事件被触发的随即。客商机IO事件引起八个VM-Exit事件,引起KVM从客商机情势切换来主机情势。然后,如标记2和3所示,客商机IO事件被运维在顾客空间的QEMU管理。末了,在申明4处,VM-enter发生,引起KVM从主机方式切换来客商机方式。

拍卖开支首要由VM-exit和Vm-ente上下文切换引起,而那正是KVM无人不晓的深重成本。
图片 6

4.3 Xvisor ARM

不像任何Hypervisor,Xvisor
ARM在客商机IO事件模拟上不会迷惑额外的调节或许上下文切换的支出。如图7所示,流程开首在标识1,叁个客商机IO事件被Xvisor
ARM捕获时。随后,事件在申明2处的不足睡眠的通用上下文中被拍卖以保险时间被管理,并具备预期的开销。
图片 7

5. 主机中断

嵌入式系统在拍卖主机中断时,必需服从严俊的时辰约束。在设想化情况中,Hypervisor在拍卖主机中断时也许会有额外的开垦,转而影响主机IO品质。请珍视注意,文中所述的Hypervisor的主机中断管理流程对具备Computer框架结构包涵ARM都以如出豆蔻年华辙的。

5.1 Xen ARM

在Xen中,主机设备驱动作为Dom0
Linux内核的朝气蓬勃局地运维。由此有所主机中断都被转正到Dom0。如图8所示,流程发轫在标识1,贰个主机ITucsonQ(中断诉求)被触发,然后在注解2处被转变到Dom0。如图中标注3和4所示,全数主机中断由Dom0管理。假使二个主机中断在DomU运营时被触发,那么它就要Dom0被调节进来后本领得四管理,由此主机中断管理引发了调整费用。
图片 8

5.2 KVM ARM

图9所示为KVM
ARM上客商机正在周转时的主机中断管理流程[仿照效法文献22]。如图中阐明1所示,各样主机中断触发四个VM-exit。黄金时代旦中断如图中标记2和3所示,被主机内核管理,KVM通过注脚4处的VM-entry恢复生机客商机。当有个别KVM顾客机处于运市场价格况时,VM-exit和VM-entry扩展了一定大的主机中断管理费用。进而,假若主机中断被转发到KVM顾客机,那么调治开支也会设有。
图片 9

5.3 Xvisor ARM

Xvisor的主机设备驱动日常作为Xvisor的风华正茂有的以最高权力运营。由此,图第10中学,管理主机中断时是无需吸引调节和上下文切换费用的。唯有当主机中断被转载到一个当下还未运维的客商机时,才会抓住调治开销。
图片 10

6. 锁同步延迟

在设想化意况中,锁同步延迟难点是[参照他事他说加以考察文献23]中涉及的八个醒指标难点。那些主题素材因如下2个调节器的留存而发生:

  • Hypervisor调度器
  • 客户机OS调度器

此间,几个调节器互相意识不到对方,导致客商机vCPU被Hypervisor随意抢占。大家付出了一个有关这种延迟和有着3个Hypervisor如哪个地点理它们的壹个归纳介绍。

同二个客商机中vCPU之间锁同步的失效管理导致了图11和1第22中学展示的三个不鲜明场景:vCPU抢占和vCPU聚成堆难点。三种问题都大概导致在获得同多少个顾客机的vCPU锁时增添等待时间。

当贰个运营在全部锁的某主机CPU(pCPU0)上的vCPU(vCPU0)被私吞,而还要另多少个周转在别的主机CPU(pCPU1)上的vCPU(vCPU1)正在守候这么些锁,那么vCPU抢占难题就能够发出。其余,产生在三个运作着三个vCPU的单主机CPU上的锁调解冲突难点也会产生vCPU堆叠难点发生。也等于说,希望取得有些锁的vCPU(vCPU1)抢占了运维在同多少个主机CPU上的vCPU(vCPU0),不过vCPU0正在有着那么些锁。
图片 11
图片 12
在ARM机构上,操作系统标准的接受WFE(等待事件)指令来等待诉求三个锁,并应用SEV(发送事件)指令来刑满释放解除劳教八个锁。ARM架构允许WFE指令被Hypervisor捕获,不过SEV指令无法被捕获。为了消除vCPU聚成堆难点,全部3种Hypervisor(Xen
ARM,KVM ARM和Xvisor
ARM)都利用捕获WFE指令的法门使得vCPU让出时间片。ARM架构的vCPU抢占难点能够透过动用半设想化锁的章程来缓和,但是急需对顾客机操作系统实行源码级的改造。

7. 内部存款和储蓄器管理

嵌入式系统须求有效的内存管理。对于嵌入式Hypervisor来讲,内部存款和储蓄器管理的费用需求谨严思索。ARM架构提供2级翻译表(大概说嵌套页表),用于顾客机内部存款和储蓄器虚构化,即图13所示的2品级MMU。客商机操作系统负主要编辑制程序第1等第页表,将客商机设想地址(GVA)翻译到直接物理地址(IPA)。ARM
Hypervisor负网编制程序第2等第页表来从将直接物理地址(IPA)翻译成实际物理地址(PA)。
图片 13
TLB-miss(Translation Look-aside Buffers
miss,即页表缓冲缺点和失误)时必得搜索翻译表。那几个进度中应用的第2阶段页表的级数影响内部存储器带宽和设想化系统的意气风发体化质量。譬喻最不佳的图景下,N级第1等第翻译表和M级第2等级翻译表需求NxM次内部存款和储蓄器访谈。对任何设想化系统上的顾客机来讲,TLB-miss损失都以特别昂贵的。为了收缩2等第MMU中的TLB-miss损失,ARM
Hypervisor在第2等级成立越来越大的页。

7.1 Xen ARM

Xen ARM为各样顾客机或域(Dom0或DomU)创建二个独门的3级第2等第翻译表。Xen
ARM能创建4K字节,2M字节或1G字节的第2等级翻译表项。Xen
ARM也按需分配顾客机内存,并意欲依附IPA和PA对齐构造尽可能最大的第2等第翻译表项。

7.2 KVM ARM

KVM顾客空间工具(QEMU)预先分配作为客商机RAM使用的客户空间内部存款和储蓄器,并向KVM内核模块通知其任务。KVM内核模块为每一个客商机vCPU创设三个单独的3级第2等第翻译表。标准的,KVM
ARM将成立4K字节大小的第2阶段翻译表项,然而也能够利用宏大化TLB优化方式开创2M字节大小的第2等第翻译表项。

7.3 Xvisor ARM

Xvisor
ARM在客商机创设时,预先分配三番五次的主机内部存储器以做为客户机RAM。它为各种客商机创立五个独门的3级第2品级翻译表。Xvisor
ARM能制造4K字节,2M字节或1G字节的第2品级翻译表项。此外,Xvisor
ARM总是基于IPA和PA对齐创制尽或然最大的第2等第翻译表项。最终,客户机RAM是扁平化和连接的(不像其余Hypervisor)。那有利于缓存预取访谈,进而越发提高顾客机内部存储器访问质量。

8. 内部存款和储蓄器占用相比

嵌入式系统必要小内部存款和储蓄器占用([参照他事他说加以考查文献[24])。下表I,II和III显示Cubieboard2([参照他事他说加以侦察文献[25])上的设置必要和纤维内部存款和储蓄器占用。由从前面问题回答如下:

  1. 急需满足哪些条件技术使Xen ARM,KVM ARM和Xvisor ARM运转在系统上?
  2. Xen ARM,KVM ARM和Xvisor ARM须要消耗的的微小内部存款和储蓄器是有一点点?

图片 14
上图中:

  • a)
    Xen工具栈与其余注重库独立安装。这么些工具栈允许客商管理设想机创设、销毁和布局。它能够经过命令行终端和图纸接口使用([参照他事他说加以考查文献[10])。
  • b) Xen保留大量内部存款和储蓄器,用于事件通道。
    图片 15
    图片 16
    上图中:
  • c)
    Xvisor内核在单个二进制文件中含有完整的设想化功效,何况随着更加多新特色的充实进而巩固到2~3M字节;
  • d)
    Xvisor使用编译选项来界定自个儿的内存占用,ARM架构暗中同意设置为16M字节。

9. 尺度测验程序

我们尝试中央银行使的基准测量检验程序专一于从CPU开销、内部存款和储蓄器带宽和锁同步机制方面可比Hypervisor。

9.1 Dhrystone

Dhrystone是一个用以度量处理器整形品质的简易标准测量试验([参照他事他说加以侦查文献[26])。Dhrystone基准测量检验的每秒总迭代次数被称作每秒Dhrystones。进而,Dhrystone结果的别的贰个意味是DMIPS(每秒百万条Dhrystone指令数),也等于每秒Dhrystones除以1757。DMIPS只不过是与VAX
11/780,,标准的1
MIPS机器([参谋文献[27])举行比较的微型Computer体系的属性。

9.2 Cachebench

Cachebench来评估Computer连串内部存款和储蓄器种类的质量。它小心于把计算机内外的高速缓存的七个等级参数化。Cachebench举办差异缓冲区大小的测验:内部存款和储蓄器设置、内部存款和储蓄器复制、整数读取,整数写入和整数读取-修正-写入。对于我们的试验,我们将生成以兆字节每秒为单位的内部存款和储蓄器复制和整数读取-更改-写入测验的结果。

9.3 Stream

内部存款和储蓄器带宽已经被以为能够影响系统特性([参照他事他说加以调查文献[29])。STREAM是二个规划用来度量持续内存带宽(以兆字节每秒为单位)的简易复合基准测量检验程序。STREAM基准测量检验被醒指标统筹在任何系统的要命大的多少会集上中国人民解放军海军工程大学业作,实际不是可用的长足缓冲上。大家尝试中动用的STREAM版本是v5.10,二零零二000数组大小(大概45.8M字节)

9.4 Hackbench

哈克bench通过分明调治给定数据职责开销的年华来度量系统调度器品质。哈克bench的首要办事是调节线程和经过。调节实体通过套接字或管道收发数据来广播发表。运转测量检验程序时亦可对数据大小和新闻数目进行安装。

10. 实验

末端的尝试目的在于评估前段时间提议的嵌入式Hypervisor –
Xvisor相较KVM和Xen的频率。本文试图在Cubieboard2([参考文献[25])上的客商机Linux上运维4个规范测验程序。Cubieboard2是一块富含1GB
RAM的ARM Cortex-A7双核1GHz单板。试验中选用了如下Hypervisor版本:

  1. KVM:
    最新的Linux-3.16-rc3被看成主机KVM内核。客商机内核是Linux-3.16-rc3。
  2. Xen:二零一五年七月3日透露的最新的Xen-4.5-unstable内核被视作Hypervisor。Dom0内核和DomU均为Linux-3.16-rc3。
  3. Xvisor:二〇一四年6月12日宣布的摩登的Xvisor-0.2.4+被看作Hypervisor。顾客机内核是Linux-3.16-rc3。

试验结果通过多少个测量检验向量获取。第二个运行在多少个单核上,而另三个运作在二个双核上。测验系统(SUT,systems
under test)如下:

  1. 未曾其它Hypervisor的主机;
  2. Xvisor客户机;
  3. KVM客户机;
  4. HugeTLB模式KVM客户机;
  5. Xen客户机。

为了确认保证独有CPU费用,内部存款和储蓄器带宽和锁同步延迟被引进测量试验结果,多个测验向量都有三个装有2个vCPU的半虚构化客商机。并且,全体Hypervisor都开展了之类优化:

  • 未曾来源于通用中断调整器的保卫安全中断;
  • Xen ARM超级页协助;
  • WFE指令捕获-出让vCPU机制。

表IV和V显示以DMIPS为单位的Dhrystone结果。Xvisor客商机的DMIPS比KVM顾客机高大概0.2%,比HugeTLB格局KVM顾客机高0.19%,比Xen
DomU高0.60%。Dhrystone基准测验超小,在运转时大约能够放在高速缓存中,因而内部存款和储蓄器访谈成本不会对其发生影响。即使唯有2个DMIPS的进级,那还是进步了全部序列性情,因为1个DMIPS等于每秒1758次迭代。所以,使肉体大校是每秒数千次迭代(日常是几百万条机器指令)。
图片 17
图片 18
图片 19
图片 20
表VI, VII,
VIII和IX展现内部存款和储蓄器复制和整数读取-修正-写入三种操作的Cachebench结果。Xvisor顾客机的内部存款和储蓄器复制结果比KVM客商机高大约18%,比HugeTLB方式KVM客商机高1.2%,比Xen
DomU高0.67%。Xvisor客户机的莫西干发型读取-校勘-写入结果也比KVM顾客机高大致1.14%,比HugeTLB形式KVM顾客机高1.2%,比Xen
DomU高1.64%。
图片 21
图片 22
图片 23
图片 24
图片 25
图片 26
图片 27
图片 28

表X和XI展现Xvisor顾客机的连绵内部存款和储蓄器带宽比KVM顾客机高大约0.72%,比HugeTLB方式KVM客商机高1.52%,比Xen
DomU高1.2%。
图片 29
图片 30
图片 31
图片 32

表XII和XIII中的哈克bench结果显示示Xvisor顾客机的天职务发延迟比KVM顾客机低大概百分之十七,比HugeTLB情势KVM顾客机低5.62%,比Xen
DomU低6.39%。

图片 33
图片 34
图片 35
图片 36

11. 结论

那篇随想介绍了作为开源Hypervisor –
Xen和KVM品质瑕疵解决方案的新嵌入式Hypervisor –
Xvisor。Xvisor的落到实处优点体以后如下多少个方面:

  • 客户机IO模拟;
  • 主机中断管理;
  • 锁同步延迟;
  • 内部存款和储蓄器占用;
  • 内部存款和储蓄器管理。

再者,4种不相同基础准测量检验的展现结果支撑了Xvisor的完毕优势。

实行结果呈现Dhrystone,Cachebench和Stream基准测验在Xvisor
ARM客户机上全体越来越高的速率。那申明Xvisor ARM客商机械和工具备相对于KVM
ARM顾客机和Xen ARM
DomU更低的CPU费用和越来越高的内存带宽。进而,哈克bench在Xvisor
ARM客户机上全数越来越少的实行时间。那注解Xvisor ARM顾客机械和工具备绝对于KVM
ARM顾客机和Xen ARM
DomU更低的锁同步延迟和假造电火花计时器中断费用。这一个结果表示Xvisor
ARM下的客商机相对于KVM ARM和Xen ARM更相像原生品质。最终, Xvisor
ARM越来越小的内部存款和储蓄器占用允许它在嵌入式系统上更有效的应用有限的内部存款和储蓄器。

Xvisor允许额外的板级帮助包(BSP)。越来越多的多核体验(不仅仅是双核)也是恐怕的。何况,基于上述衡量数据现已认证的习性升高,Xvisor未来在网络和仓库储存虚构化方面的兑现也能抱有更加好的本性。

参考文献

  1. Motivation for running a Hypervisor on Embedded
    Systems
  2. R.Kaiser, “Complex embedded systems-A case for virtualization,” in
    Intelligent solutions in Embedded Systems, 2009 Seventh Workshop on,
    pp. 135-140. IEEE, 2009.
  3. Heiser, Gernot. “The role of virtualization in embedded systems,” in
    Proceedings of the 1st workshop on Isolation and integration in
    embedded systems, pp. 11-16. ACM, 2008.
  4. Heiser, Gernot. “The Motorola Evoke QA4-A Case Study in Mobile
    Virtualization.” Open Kernel Labs (2009).
  5. “Case Study: The Use of Virtualization in Embedded Systems,” white
    paper,2013.
  6. G.Heiser, “Virtualizing embedded systems: why bother?,” in
    Proceedings of the 48th Design Automation Conference, pp. 901-905.
    ACM, 2011.
  7. Dall, Christoffer, and Jason Nieh. “KVM/ARM: Experiences Building
    the Linux ARM Hypervisor.” (2013).
  8. Rossier, Daniel. “EmbeddedXEN: A Revisited Architecture of the XEN
    hypervisor to support ARM-based embedded virtualization.” White
    paper, Switzerland (2012).
  9. Soriga, Stefan Gabriel, and Mihai Barbulescu. “A comparison of the
    performance and scalability of Xen and KVM hypervisors.” In
    Networking in Education and Research, 2013 RoEduNet International
    Conference 12th Edition, pp. 1-6. IEEE, 2013.
  10. ARMv7-AR architecture reference
    manual
  11. Xvisor open-source bare metal monolithic
    hypervisor
  12. The Architecture of VMware
    ESXi
  13. E. Bugnion, S. Devine, M. Rosenblum, J. Sugerman, and E. Y.Wang,
    “Bringing Virtualization to the x86 Architecture the Origiinal
    VMware Workstation,” ACM Transactions on Computer Systems,
    30(4):12:1-12:51, Nov 2012.
  14. OKL4
    Microvisor
  15. H. Fayyad-Kazan, L. Perneel and M. Timerman, “Benchmarking the
    Performance of Microsoft Hyper-V server, VMware ESXi, and Xen
    Hypervisors”, Journal of Emerging Trends in Computing and
    Information Sciences, Vol. 4, No. 12, Dec 2013.
  16. INTEGRITY
    Multivisor
  17. Full
    Virtualization
  18. Paravirtualization
  19. Xen Project Beginners
    Guide
  20. R. Russell. Virtio PCI Card Specification v0.9.5 DRAFT, May
  21. G.Likely, and J.Boyer, “A symphony of flavours: Using the device
    tree to describe embedded hardware,” in Proceedings of the Linux
    Symposium, vol. 2, pp. 27-37. 2008.
  22. R.Ma, F.Zhou, E.Zhu, and H.GUAN, “Performance Tuning Towards a
    KVM-based Embedded Real-Time Virtualization System.” Journal of
    Information Science and Engineering 29, no. 5 (2013): 1021-1035.
  23. X.Song, J.Shi, H.Chen, and B.Zang, “Schedule processes, not vcpus,”
    in Proceedings of the 4th Asia-Pacific Workshop on Systems, p. 1.
    ACM, 2013.
  24. Memory Footprint
  25. Cubiboard
  26. RP.Weicker, “Dhrystone: a synthetic systems programming benchmark,”
    Communications of the ACM 27, no. 10 (1984):1013-1030.
  27. Dhrystone
  28. PJ.Mucci, K.London, and J.Thurman. “The cachebench
    report.”University of Tennessee, Knoxville, TN 19 (1998).
  29. Stream
  30. Hackbench Ubuntu
    Manuals