裸机虚拟化(Type-I虚拟化),并从中期的的

译者序

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

虚拟化(Virtualization)那种源点于上世纪60年份IBM大型机系统的技巧在处理器性能大幅度进步的及时,再度急速提欣然自得起,并从初期的的裸机虚拟化(Type-I虚拟化)技巧初步,衍变出主机虚拟化(Type-II虚拟化)错落虚拟化(Hybrid虚拟化)等更复杂的虚拟化模型,并在此基础山发展出了当下最吃香的云计算技术,一点都不小地降低了IT花费,增强了系统的安全性,可信赖性和扩充性。

嵌入式系统则是虚拟化技术在嵌入式领域的采取。文中的Xvisor正是一款开源的选择裸机虚拟化技术的轻量级嵌入式Hypervisor,具有能够的代码架构和和可移植性,补助ACR-VM和X86处理器的半虚拟化据他们说硬件的全虚拟化技术。

文中围绕嵌入式Hypervisor的伍个为主部分 – 客户机IO事件模拟、主机中断、
锁同步延迟、内部存储器管理和内部存储器占用,基于当下最盛行的A瑞鹰M处理器架构,实行了深切的阐释和自己检查自纠。

翻译在翻译时尽恐怕逐词翻译,不过某个语句为了更通晓的抒发依照译者的接头进行了转述。若有不妥,请参考原来的文章。

译者序

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

虚拟化(Virtualization)那种起点于上世纪60时期IBM大型机系统的技艺在处理器品质大幅提高的马上,再度飞快提升起来,并从先前时代的的裸机虚拟化(Type-I虚拟化)技术起初,演化出主机虚拟化(Type-II虚拟化)错落虚拟化(Hybrid虚拟化)等更复杂的虚拟化模型,并在此基础山发展出了立刻最吃香的云计算技术,极大地下跌了IT开销,增强了系统的安全性,可相信性和扩大性。

嵌入式系统则是虚拟化技术在嵌入式领域的接纳。文中的Xvisor便是一款开源的选取裸机虚拟化技术的轻量级嵌入式Hypervisor,具有能够的代码架构和和可移植性,帮衬A索罗德M和X86处理器的半虚拟化听大人讲硬件的全虚拟化技术。

文中围绕嵌入式Hypervisor的三个为主部分 – 客户机IO事件模拟、主机中断、
锁同步延迟、内部存款和储蓄器管理和内部存款和储蓄器占用,基于当下最盛行的A卡宴M处理器架构,进行了深远的阐释和自己检查自纠。

翻译在翻译时尽可能逐词翻译,不过某个语句为了更精晓的表述依据译者的接头进行了转述。若有不妥,请参考原来的书文。

摘要

出于与收缩费用、提升财富利用率和更高的性质间接有关,虚拟化技术早已在嵌入式系统青海中国广播集团泛流行。为了在嵌入式系统的严谨时间约束和低内部存储器占用的虚拟化环境中获得迅猛的属性,大家供给赶快的Hypervisor(虚拟机管理器)。尽管今后已经有了部分开源的Hypervisor,例如Xen,Linux
KVM和OKL4
Microvisor,那仍然是率先篇介绍开源嵌入式虚拟机管理器Xvisor(eXtensible
Versatile
hypervisor),并从对总种类统品质的影响上,与五个常用虚拟机管理器KVM和Xen举行对照的散文。实验证实,在A安德拉M处理器架构上,Xvisor具有更低的CPU费用,更高的内部存款和储蓄器带宽,更低的锁同步延迟和虚构定时器中断开支,并且可以周详进步嵌入式系统特性。

关键词:嵌入式系统; 虚拟化; Xen, Linux KVM;
Xvisor;A宝马X3M;Hypervisor(虚拟机管理器);

摘要

是因为与削减费用、提升财富利用率和更高的品质间接相关,虚拟化技术早已在嵌入式系统青海中国广播集团大流行。为了在嵌入式系统的严酷时间约束和低内部存款和储蓄器占用的虚拟化环境中获得神速的属性,大家须求快速的Hypervisor(虚拟机管理器)。就算未来一度有了一些开源的Hypervisor,例如Xen,Linux
KVM和OKL4
Microvisor,那依然是率先篇介绍开源嵌入式虚拟机管理器Xvisor(eXtensible
Versatile
hypervisor),并从对整类别统脾性的震慑上,与三个常用虚拟机管理器KVM和Xen进行比较的舆论。实验验证,在A冠道M处理器架构上,Xvisor具有更低的CPU耗费,更高的内部存储器带宽,更低的锁同步延迟和编造定时器中断开支,并且能够完美升级嵌入式系统质量。

关键词:嵌入式系统; 虚拟化; Xen, Linux KVM;
Xvisor;A大切诺基M;Hypervisor(虚拟机管理器);

1. 介绍

方今,多核嵌入式系统须求的进步已经开始引领虚拟化技术在嵌入式系统中的研讨。嵌入式系统平常全体能源有限,实时性约束,高质量供给,增加的应用程序栈须要(必须利用不难外设)等性子[参考文献1]。

虚拟化技术提供了在单核或多核处理器上以虚拟机(VM或客户机)格局运营三个操作系统的法门。每种客户机械运输转在2个或三个虚拟处理单元(vCPU)上。进而,二个客户机的保有vCPU(虚拟CPU)同别的一个客户机的vCPU完全隔开,可是共享同一套外设。

由此,虚拟化的利用提供了如下优势[参照文献2]:

  1. 千古运行在不一样装备上的劳务未来得以视作四个VM运营在同2个配备上;
  2. 在同三个设备上联合操作系统的实时天性和通用指标本性,即在区别的VM中执行实时程序和通用程序[参考文献3];
  3. 更好的容错性;
  4. 提供高可靠应用间的隔绝性。

一如既往的,嵌入式虚拟化已经有在如下方面有力的辨证了它的能力:

  1. 索爱埃沃ke,第3个虚拟化手提式有线电话机[参考文献4];
  2. 工业自动化,虚拟化允许添加额外的施用而不须要扩展越来越多的处理单元[参考文献5];
  3. 小车能够透过在若干个互相隔断的VM(虚拟机)上独家运维娱乐音讯操作系统、AUTOSA奥迪Q7(小车开放系统架构)操作系统和WranglerTOS(实时操作系统),从而使得多个劳务能够在一如既往套硬件上运营[参考文献6];
  4. 别的用户案例,例如零售和博彩行业。

依照上边包车型大巴考虑,文中的分析性切磋将新的嵌入式Hypervisor –
Xvisor与三个现存的嵌入式开源Hypervisor – KVM/Xen进行自己检查自纠:

  1. 这一次探讨基于A奥迪Q5M架构。那是出于新型的ALX570M处理器架构已经提供了硬件虚拟化增加,并且A奥迪Q7M处理器在嵌入式系统中早已赢得了广泛应用。其它,那贰个Hypervisor共有的的绝超过50%板级扶助包(BSP)都采纳了A本田UR-VM架构处理器。

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

    • A福特ExplorerM架构协理[参考文献7,8];
    • 允许大家从没任何限制的征集品质数据的开源天性[参考文献9];
    • 与Xvisor支持同样的单板;
    • 在嵌入式系统中收获了动用。
  3. 试行应用小型基准测试工具在客户机上进行测试。那么些测试工具测试内部存款和储蓄器访问,Cache(高速缓存)访问,整形操作,职责处理等。这个操作上的天性增强能够晋级系统的一体化质量,不像是那多少个专注于测试某种特殊工作负荷(例如Web服务器,内核编写翻译,图形渲染等)的宏基准测试工具。

  4. 试行仅使用通用目标操作系统(GPOS)Linux作为客户机。因为,那是唯一可被那3种Hypervisor援助的客户机操作系统。近日从不3个通用的实时操作系统能够而且为这3种ypervisor所扶助。因而时间约束测试将因此如下因素的吞吐量测试来推行:

    • Hypervisor的低内存和CPU开支;
    • Hypervisor最小负荷景况下的客户机调度成效。

Xen,KVM和Xvisor达成的表达和限制的座谈如下所示:

  • 本文第1章解释了虚拟化技术的归类;
  • 正文第1章介绍了Xvisor并提供1个开源虚拟机管理器Xen和KVM的概略。影响到相比较因素的基本点组件的兑现细节的说明在再而三章节中会被分明表明。后续章节将囊括2个基于A汉兰达M处理器架构的上述3种Hypervisor的对待分析[参考文献10]。
  • 大家在第六讲述客户机IO模拟,而在第⑥,6,7,8章讲述主机中断处理,锁同步机制,内部存款和储蓄器管理和内部存款和储蓄器占用。
  • 小编们分析测试时用到的应用程序基准测试程序的回顾表明放在第8章,测试结果放在随后的第柒章,而结论则位于文末。

1. 介绍

近年来,多核嵌入式系统供给的增强已经初步引领虚拟化技术在嵌入式系统中的斟酌。嵌入式系统平日兼有能源有限,实时性约束,高质量须要,拉长的应用程序栈须求(必须利用不难外设)等本性[参考文献1]。

虚拟化技术提供了在单核或多核处理器上以虚拟机(VM或客户机)方式运营八个操作系统的艺术。每一种客户机械运输营在二个或几个虚拟处理单元(vCPU)上。进而,2个客户机的具有vCPU(虚拟CPU)同其它1个客户机的vCPU完全割裂,可是共享同一套外设。

故此,虚拟化的采取提供了如下优势[参考文献2]:

  1. 过去运作在不一样装备上的劳动以往能够当做多少个VM运营在同三个配备上;
  2. 在同多少个设备上统一操作系统的实时性子和通用目标天性,即在不一致的VM中推行实时程序和通用程序[参考文献3];
  3. 更好的容错性;
  4. 提供高可信赖应用间的隔开分离性。

相同的,嵌入式虚拟化已经有在如下方面有力的认证了它的力量:

  1. OPPO埃沃ke,第三个虚拟化手提式有线电话机[参照文献4];
  2. 工业自动化,虚拟化允许添加额外的运用而不要求增添更加多的处理单元[参考文献5];
  3. 轿车能够由此在多少个互相隔绝的VM(虚拟机)上分别运维娱乐音信操作系统、AUTOSA途达(汽车开放系统架构)操作系统和昂CoraTOS(实时操作系统),从而使得多个服务能够在同样套硬件上运维[参考文献6];
  4. 别的用户案例,例如零售和博彩行业。

基于上边包车型地铁设想,文中的分析性商讨将新的嵌入式Hypervisor –
Xvisor与一个现存的嵌入式开源Hypervisor – KVM/Xen实行对照:

  1. 此次研商基于ACR-VM架构。那是由于新型的APRADOM处理器架构已经提供了硬件虚拟化扩张,并且A哈弗M处理器在嵌入式系统中早已获取了广泛应用。其它,那二个Hypervisor共有的的绝大多数板级援救包(BSP)都使用了A奥迪Q7M架构处理器。

  2. KVM和Xen被选中作为比较的虚拟机管理器,是依照如下原因:

    • A景逸SUVM架构援救[参考文献7,8];
    • 同意我们尚无任何限制的募集质量数据的开源本性[参照文献9];
    • 与Xvisor帮忙同样的单板;
    • 在嵌入式系统中赢得了接纳。
  3. 试验应用微型基准测试工具在客户机上实行测试。这几个测试工具测试内部存款和储蓄器访问,Cache(高速缓存)访问,整形操作,职分处理等。这几个操作上的天性增强能够升高系统的总体质量,不像是这几个专注于测试某种特殊工作负荷(例如Web服务器,内核编写翻译,图形渲染等)的宏基准测试工具。

  4. 试验仅使用通用指标操作系统(GPOS)Linux作为客户机。因为,那是绝无仅有可被那3种Hypervisor帮忙的客户机操作系统。最近尚无1个通用的实时操作系统能够同时为那3种ypervisor所支撑。因而时间约束测试将通过如下因素的吞吐量测试来推行:

    • Hypervisor的低内部存款和储蓄器和CPU花费;
    • Hypervisor最小负荷景况下的客户机调度成效。

Xen,KVM和Xvisor实现的辨证和限量的议论如下所示:

  • 正文第壹章解释了虚拟化技术的分类;
  • 正文第一章介绍了Xvisor并提供三个开源虚拟机管理器Xen和KVM的概貌。影响到比较因素的机要组件的贯彻细节的表明在后续章节中会被醒目表达。后续章节将囊括多个基于APRADOM处理器架构的上述3种Hypervisor的对待分析[参考文献10]。
  • 大家在第⑤讲述客户机IO模拟,而在第六,6,7,8章讲述主机中断处理,锁同步机制,内存管理和内部存款和储蓄器占用。
  • 咱俩分析测试时用到的应用程序基准测试程序的简约表明放在第7章,测试结果放在随后的第⑧章,而结论则位于文末。

2. 虚拟化技术分类

依据如下七个特性[参考文献11],大家把虚拟化技术划分为5类:

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

图片 1

相应的,虚拟化技术分类在经过客户机获取的性质衡量中扮演注重要角色。

2. 虚拟化技术分类

依照如下两特性况[参考文献11],大家把虚拟化技术划分为5类:

  • Hypervisor设计;
  • 图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上运营每1个主机设备驱动程序而不是在通用管理VM上运维。例如Xen微软Hyper-V[参考文献14],OKL4
    Microvisor
    [参考文献15]和INTEGRITY Multivisor[参考文献16]。

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上运营每3个主机设备驱动程序而不是在通用管理VM上运转。例如Xen微软Hyper-V[参考文献14],OKL4
    Microvisor
    [参考文献15]和INTEGRITY Multivisor[参考文献16]。

2.2 虚拟化方式

虚拟化格局决定了力所能及在Hypervisor上运维的客户机的品种[参考文献17,18]:

  1. 全虚拟化

    通过提供系统虚拟机(例如模拟类似于实际硬件的凡事系统),允许未经修改的客户机操作系统作为客户机械运输维。(译者注:该格局须求借助硬件的虚拟化补助,例如X86架构英特尔-V/英特尔VT,A悍马H2Mv8和Power架构的虚拟化profile等。)

  2. 半虚拟化

    透过提供Hypercall(虚拟机调用接口),允许修改过的的客户机操作系统作为客户机运维。那些形式供给客户机使用Hypercall来展开各类IO操作(例如,网络收发,块读写,终端读写等等)和在好曾几何时候实施有个别首要指令。那么些Hypercall会触发三个trap(陷阱)中断以进入Hypervisor。那几个trap中断基于Hypercall参数,使得Hypervisor为客户机提供希望的劳务。

  3. 嵌入式系统的开源Hypervisor

上面是多个开源虚拟机管理器Xen和KVM的多少个不难易行介绍,用于在Hypervisor研商中跟Xvisor进行相比较。

鉴于大家钻探中对品质比较的关系,我们讲述了这几个Hypervisor中已知的诱致客户机械运输维并因而影响整个虚拟化嵌入式系统性子的系统组件的实现细节。这包含各类Hypervisor怎么样处理CPU虚拟化,客户机IO模拟和主机硬件访问。其余,各类Hypervisor的某个重要优势也会被提及。

2.2 虚拟化形式

虚拟化情势决定了能够在Hypervisor上运营的客户机的品类[参考文献17,18]:

  1. 全虚拟化

    透过提供系统虚拟机(例如模拟类似于实际硬件的全体体系),允许未经修改的客户机操作系统作为客户机械运输维。(译者注:该方式要求依靠硬件的虚拟化扶助,例如X86架构英特尔-V/英特尔VT,ALANDMv8和Power架构的虚拟化profile等。)

  2. 半虚拟化

    因此提供Hypercall(虚拟机调用接口),允许修改过的的客户机操作系统作为客户机械运输维。那个方式要求客户机使用Hypercall来开始展览各种IO操作(例如,互连网收发,块读写,终端读写等等)和在有些时候实施有个别关键指令。那些Hypercall会触发三个trap(陷阱)中断以进入Hypervisor。那么些trap中断基于Hypercall参数,使得Hypervisor为客户机提供希望的劳动。

  3. 嵌入式系统的开源Hypervisor

上面是五个开源虚拟机管理器Xen和KVM的1个简练介绍,用于在Hypervisor切磋中跟Xvisor实行对照。

鉴于大家钻探中对质量相比较的涉嫌,大家描述了那些Hypervisor中已知的诱致客户机运营并通过影响总体虚拟化嵌入式系统性子的类别组件的兑现细节。那包含各类Hypervisor如何处理CPU虚拟化,客户机IO模拟和主机硬件访问。其余,每一种Hypervisor的有个别主要优势也会被提及。

2.1 XEN

如图2所示,Xen
Hypervisor是一个支撑全虚拟化和半虚拟化客户机的微内核Hypervisor。Xen
Hypervisor内核是二个轻量级微内核,提供:

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

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

Domain0(Dom0)是1个奇特类型的域,运营着二个Linux内核的修改版本。Dommain0必须运转在一个比任何其它VM或客户机更高的优先级上,并且拥有对主机硬件的完全访问权限。Dom0的最主要指标是运用Linux内核提供IO虚拟化和客户机管理服务。

DomainU(DomU)相应于运作着3个客户机操作系统的客户虚拟机。客户机的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.1 XEN

如图2所示,Xen
Hypervisor是一个支撑全虚拟化和半虚拟化客户机的微内核Hypervisor。Xen
Hypervisor内核是3个轻量级微内核,提供:

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

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

Domain0(Dom0)是二个卓越类型的域,运转着三个Linux内核的修改版本。Dommain0必须运营在1个比别的其它VM或客户机更高的优先级上,并且存有对主机硬件的一心访问权限。Dom0的基本点目标是选取Linux内核提供IO虚拟化和客户机管理服务。

DomainU(DomU)相应于运作着1个客户机操作系统的客户虚拟机。客户机的IO事件模拟和半虚拟化通过DomU和Dom0之间的报纸发表来促成。这一指标通过使用Xen事件通道来成功。半虚拟化客户机,相应于DomU
PVM,使用Xen事件通道来访问Dom0半虚拟化IO服务。可是,全虚拟化客户机,相应于DomU
HVM,使用运转在Dom0用户空间中的QEMU来效仿客户机IO事件。

装有用来治本客户机或域的用户接口都通过运营在Dom0用户控件的Xen工具栈来完结。没有Dom0,Xen不可能提供DomU
PVM也许DomU HVM。

Xen最主要的优势是使用Linux内核作为Dom0,因为那能补助Xen重用Linux内核现有的配备驱动和别的一些。但是,这几个优势拉动了背后章节将会涉及的额外轮代理公司价。也正是说,作为Dom0运转的Linux内核比平素运维在实际硬件上(没有Xen)稍微慢了某个。那是因为,Dom0只是Xen的另多个域,有它本身的嵌套页表,并且恐怕被Xen调度器调度出去。

2.2 KVM

KVM(基于内核的虚拟机)是八个支撑全虚拟化和半虚拟化技术的一对宏内核Hypervisor。KVM主要提供全虚拟化客户机,并以可选的VirtIO设备[参考文献20]的款型提供半虚拟化辅助。
图片 3
KVM扩张Linux内核的施行情势以允许Linux作为1个Hypervisor来干活。除了已有个别2种实施格局(内核格局和用户格局),客户机形式被看做一种新的格局加上到Linux内核中。那种方法允许客户机操作系统与主机操作系统运转在一如既往的履行方式下(除了有些特殊指令和寄存器访问),并且IO访问将陷入到主机Linux内核。主机Linux内核将把3个虚拟机视作一个QEMU进度。KVM只万幸主机内核上虚拟化CPU,并且重视于运作在用户控件的QEMU来处理客户机IO事件的模仿和半虚拟化。

如图2所示,KVM包含一个主要组件:

  1. 水源空间字符设备驱动,通过一个字符设备文件/dev/kvm提供CPU虚拟化服务和内部存款和储蓄器虚拟化服务;
  2. 提供客户机硬件模拟的用户空间模拟器(通常是QEMU)。

与那多少个零部件之间的服务请求通讯,例如虚拟机和vCPU的创导,平时通过/dev/kvm设备文件的IOCT兰德昂科拉L操作来处理。

KVM最重视的优势(类似于Xen)是采取Linux内核作为主机内核。这样有助于KVM重用Linux内核现有的装置驱动和别的部分。然而,由于KVM依赖于嵌套页表故障机制的客户机格局到主机方式的虚拟机切换,特殊指令陷阱(Trap),主机中断,客户机IO事件,和另二个从主机形式唤醒客户机执行的虚拟机切换,那一个优势也招致了KVM全部质量本质上的降低。

2.2 KVM

KVM(基于内核的虚拟机)是二个补助全虚拟化和半虚拟化技术的某个宏内核Hypervisor。KVM主要提供全虚拟化客户机,并以可选的VirtIO设备[参考文献20]的款式提供半虚拟化协助。

KVM扩充Linux内核的举行情势以允许Linux作为四个Hypervisor来办事。除了已部分2种实施形式(内核方式和用户方式),客户机情势被视作一种新的方式加上到Linux内核中。那种艺术允许客户机操作系统与主机操作系统运转在同等的施行形式下(除了少数特殊指令和寄存器访问),并且IO访问将深陷到主机Linux内核。主机Linux内核将把3个虚拟机视作贰个QEMU进度。KVM只可以在主机内核上虚拟化CPU,并且重视于运作在用户控件的QEMU来拍卖客户机IO事件的模拟和半虚拟化。

如图2所示,KVM蕴涵1个基本点组件:

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

与那五个零部件之间的劳务请求通讯,例如虚拟机和vCPU的创制,日常经过/dev/kvm设备文件的IOCTENVISIONL操作来处理。

KVM最要紧的优势(类似于Xen)是行使Linux内核作为主机内核。那样有助于KVM重用Linux内核现有的设备驱动和别的部分。不过,由于KVM重视于嵌套页表故障机制的客户机形式到主机形式的虚拟机切换,特殊指令陷阱(Trap),主机中断,客户机IO事件,和另1个从主机格局唤醒客户机执行的虚拟机切换,这么些优势也导致了KVM全部品质本质上的低沉。

2.3 Xvisor

图4中的Xvisor是一个援救全虚拟化和半虚拟化技术的通通宏内核Hypervisor。它的指标是提供叁个仅需少测量身体系开发和相当的小内部存款和储蓄器占用的在嵌入式系统中动用的轻量级Hypervisor。Xvisor首要提供全虚拟化客户机,并以VirtIO设备[参考文献20]的款式提供半虚拟化帮助。
图片 4

Xvisor的全部宗旨零部件,例如CPU虚拟化,客户机IO模拟,后端线程,半虚拟化服务,管理服务和设施驱动,都用作一个独门的软件层运转,不须要任何要求的工具可能二进制文件。

客户机操作系统运转在Xvisor上,具有更少的特权;而Xvisor的落到实处负责调用标准vCPU。其余,全部设备驱动和管理效用的后端处理运营在不享有最高优先级的孤儿vCPU(没有分配给某些客户机的vCPU)上。客户机配置音信以设备树(Device
Tree)[参考文献21]的格局维护。那种措施通过利用设备树脚本(DTS),使得客户机硬件音讯的维护尤其便于。换句话说,为嵌入式系统定制2个虚拟机时不须要修改代码。

Xvisor最根本的优势是运作在提供具有虚拟化相关服务的参天特权等级上的十足软件层。不像KVM,Xvisor的上下文切换万分轻量级(参见第6章),因而嵌套页表、特殊指令陷阱、主机中断和客户机IO事件等的处理也格外迅猛。进而,全部设施驱动都看作Xvisor的一片段直接运维,具有完全的特权并且没有嵌套页表,以管教不会产出品质退化。此外,Xvisor的vCPU调度器是基于单CPU的,不处理多核系统的载荷均衡。在Xvisor中,多核系统的载重均衡器是二个分离的部分,独立于vCPU调度器(不像KVM和XEN)。在Xvisor中,vCPU调度器和负载均衡器都以可扩展的。

Xvisor唯一的限定是缺乏Linux那样丰硕的单板和配备驱动。为了处理那些界定,Xvisor提供了Linux包容层头文件以方便从Linux内核移植设备驱动框架和设备驱动。就算不可能一心缓解难点,移植费用也足以十分的大收缩。

2.3 Xvisor

图4中的Xvisor是一个支撑全虚拟化和半虚拟化技术的完全宏内核Hypervisor。它的指标是提供三个仅需少量连串开发和非常的小内部存款和储蓄器占用的在嵌入式系统中运用的轻量级Hypervisor。Xvisor首要提供全虚拟化客户机,并以VirtIO设备[参考文献20]的款型提供半虚拟化帮忙。

Xvisor的拥有中央器件,例如CPU虚拟化,客户机IO模拟,后端线程,半虚拟化服务,管理服务和设施驱动,都用作八个独自的软件层运维,不须求别的须要的工具恐怕二进制文件。

客户机操作系统运转在Xvisor上,具有更少的特权;而Xvisor的贯彻负责调用标准vCPU。其余,全数设施驱动和治本功效的后端处理运转在不拥有最高优先级的孤儿vCPU(没有分配给某些客户机的vCPU)上。客户机配置音讯以设备树(Device
Tree)[参考文献21]的方式维护。那种措施通过使用设备树脚本(DTS),使得客户机硬件消息的保卫安全特别便于。换句话说,为嵌入式系统定制3个虚拟机时不需求修改代码。

Xvisor最重庆大学的优势是运作在提供全部虚拟化相关服务的最Gott权等级上的单纯软件层。不像KVM,Xvisor的上下文切换非凡轻量级(参见第⑥章),因而嵌套页表、特殊指令陷阱、主机中断和客户机IO事件等的拍卖也相当火速。进而,全部设备驱动都用作Xvisor的一片段直接运维,具有完全的特权并且没有嵌套页表,以保证不晤面世质量退化。其余,Xvisor的vCPU调度器是依照单CPU的,不处理多核系统的负载均衡。在Xvisor中,多核系统的载荷均衡器是二个分其余一对,独立于vCPU调度器(不像KVM和XEN)。在Xvisor中,vCPU调度器和负载均衡器都以可扩展的。

Xvisor唯一的限定是缺乏Linux那样丰裕的单板和装备驱动。为了处理那几个范围,Xvisor提供了Linux兼容层头文件以方便从Linux内核移植设备驱动框架和设备驱动。尽管不可能完全消除难点,移植费用也得以大幅回落。

4. 客户机IO事件模拟

嵌入式系统须要用作虚拟机(VM)或客户机运转守旧软件。古板嵌入式软件恐怕希望须求Hypervisor模拟的特出硬件。那正是干什么Hypervisor必须尽量减小客户机IO事件模拟的费用。前面包车型客车小章节解释了近年来提及的Hypervisor在A福特ExplorerM处理器架构上模仿的客户机IO事件的生命周期。注意,那越发重庆大学。因为在这几个Hypervisor中,客户机IO事件流在全部电脑架构包蕴AWranglerM上都是相同的。

4. 客户机IO事件模拟

嵌入式系统要求当作虚拟机(VM)或客户机械运输转古板软件。古板嵌入式软件也许希望要求Hypervisor模拟的独特硬件。那正是为啥Hypervisor必须尽量减小客户机IO事件模拟的开销。前边的小章节解释了前边提及的Hypervisor在AOdysseyM处理器架构上模拟的客户机IO事件的生命周期。注意,那充足关键。因为在那么些Hypervisor中,客户机IO事件流在全体电脑框架结构蕴含A福特ExplorerM上都以一致的。

4.1 Xen ARM

图5显得了Xen A奔驰M级M用于DomU
HVM(全虚拟化客户机)的客户机IO事件模拟的生命周期。从标志1发端,贰个客户机IO事件被触发,然后使用标志2和标志3所示的Xen事件通道转载到Dom0内核。随后,运维在Dom0用户空间的QEMU在注解4仿照客户机IO事件。最终在标志5,控制重临到DomU。

图中所示流程导致了自然数额的开发。首先,固然已经开始展览过优化,基于域间通讯的Xen事件通道只怕有着非零开支。其次,Dom0内核到用户空间和相反方向的上下文切换扩大了客户机IO事件模拟的支出。
图片 5

4.1 Xen ARM

图5显得了Xen A帕杰罗M用于DomU
HVM(全虚拟化客户机)的客户机IO事件模拟的生命周期。从标志1起头,1个客户机IO事件被触发,然后选拔标志2和标志3所示的Xen事件通道转发到Dom0内核。随后,运维在Dom0用户空间的QEMU在证明4仿照客户机IO事件。最终在标志5,控制重返到DomU。

图中所示流程导致了肯定数额的开支。首先,就算已经展开过优化,基于域间通讯的Xen事件通道也许有着非零开支。其次,Dom0内核到用户空间和相反方向的上下文切换扩展了客户机IO事件模拟的开发。

4.2 KVM ARM

图6来得了客户机IO事件模拟在KVM
A奔驰G级M上的拍卖流程。图中现象开头在标志1,即一个客户机IO事件被触发的每天。客户机IO事件引起三个VM-Exit事件,引起KVM从客户机情势切换来主机格局。然后,如标志2和3所示,客户机IO事件被运营在用户空间的QEMU处理。最终,在申明4处,VM-enter发生,引起KVM从主机情势切换来客户机形式。

处理开支首要由VM-exit和Vm-ente上下文切换引起,而那多亏KVM深入人心的惨重开支。
图片 6

4.2 KVM ARM

图6出示了客户机IO事件模拟在KVM
ASportageM上的处理流程。图中现象初叶在标志1,即三个客户机IO事件被触发的天天。客户机IO事件引起一个VM-Exit事件,引起KVM从客户机情势切换成主机情势。然后,如标志2和3所示,客户机IO事件被运营在用户空间的QEMU处理。最后,在注脚4处,VM-enter发生,引起KVM从主机形式切换成客户机方式。

处理开支首要由VM-exit和Vm-ente上下文切换引起,而那多亏KVM人所共知的沉痛开销。

4.3 Xvisor ARM

不像其它Hypervisor,Xvisor
A奥迪Q5M在客户机IO事件模拟上不会掀起额外的调度恐怕上下文切换的开发。如图7所示,流程初始在标志1,三个客户机IO事件被Xvisor
ARAV4M捕获时。随后,事件在注脚2处的不得睡眠的通用上下文中被拍卖以保障时间被处理,并具备预期的支出。
图片 7

4.3 Xvisor ARM

不像其余Hypervisor,Xvisor
A汉兰达M在客户机IO事件模拟上不会掀起额外的调度只怕上下文切换的付出。如图7所示,流程伊始在标志1,三个客户机IO事件被Xvisor
AMuranoM捕获时。随后,事件在注解2处的不得睡眠的通用上下文中被拍卖以确认保障时间被拍卖,并具备预期的支出。

5. 主机中断

嵌入式系统在拍卖主机中断时,必须信守严苛的时刻约束。在虚拟化环境中,Hypervisor在拍卖主机中断时可能会有额外的开发,转而影响主机IO品质。请重点注意,文中所述的Hypervisor的主机中断处理流程对持有电脑框架结构包蕴A大切诺基M都以如出一辙的。

5. 主机中断

嵌入式系统在处理主机中断时,必须服从严俊的时光约束。在虚拟化环境中,Hypervisor在拍卖主机中断时只怕会有额外的成本,转而影响主机IO质量。请重点注意,文中所述的Hypervisor的主机中断处理流程对持有电脑架构包含A悍马H2M都以相同的。

5.1 Xen ARM

在Xen中,主机设备驱动作为Dom0
Linux内核的一部分运转。由此有着主机中断都被转载到Dom0。如图8所示,流程早先在标志1,二个主机IOdysseyQ(中断请求)被触发,然后在申明2处被转接到Dom0。如图中注脚3和4所示,全体主机中断由Dom0处理。固然2个主机中断在DomU运营时被触发,那么它将在Dom0被调度进来后才能获得处理,由此主机中断处理引发了调度开支。
图片 8

5.1 Xen ARM

在Xen中,主机设备驱动作为Dom0
Linux内核的一有个别运维。因而全数主机中断都被转载到Dom0。如图8所示,流程开始在标志1,二个主机IPRADOQ(中断请求)被触发,然后在申明2处被转正到Dom0。如图中表明3和4所示,全体主机中断由Dom0处理。假诺二个主机中断在DomU运转时被触发,那么它将在Dom0被调度进来后才能得到处理,由此主机中断处理引发了调度开销。

5.2 KVM ARM

图9所示为KVM
APAJEROM上客户机正在运维时的主机中断处理流程[参考文献22]。如图中申明1所示,每一个主机中断触发贰个VM-exit。一旦中断如图中标志2和3所示,被主机内核处理,KVM通过注明4处的VM-entry复苏客户机。当有个别KVM客户机处于运营情况时,VM-exit和VM-entry扩大了一对一大的主机中断处理开销。进而,假使主机中断被转载到KVM客户机,那么调度费用也会设有。
图片 9

5.2 KVM ARM

图9所示为KVM
A翼虎M上客户机正在运维时的主机中断处理流程[参考文献22]。如图中标明1所示,每一个主机中断触发二个VM-exit。一旦中断如图中标志2和3所示,被主机内核处理,KVM通过注解4处的VM-entry苏醒客户机。当有些KVM客户机处于运转境况时,VM-exit和VM-entry扩张了一定大的主机中断处理成本。进而,借使主机中断被转接到KVM客户机,那么调度开销也会存在。

5.3 Xvisor ARM

Xvisor的主机设备驱动平日作为Xvisor的一有些以最高权力运转。因而,图第10中学,处理主机中断时是不必要引发调度和上下文切换耗费的。只有当主机中断被转载到二个当下从未运维的客户机时,才会抓住调度花费。
图片 10

5.3 Xvisor ARM

Xvisor的主机设备驱动平常作为Xvisor的一有个别以最高权力运维。因而,图第10中学,处理主机中断时是不须要抓住调度和上下文切换开支的。唯有当主机中断被转接到1个当下从未运营的客户机时,才会引发调度费用。

6. 锁同步延迟

在虚拟化环境中,锁同步延迟难题是[参考文献23]中提到的二个明明的题材。那么些题材因如下一个调度器的留存而产生:

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

此间,五个调度器互相意识不到对方,导致客户机vCPU被Hypervisor随意抢占。我们提交了一个关于这种延迟和持有三个Hypervisor如何处理它们的1个简短介绍。

同三个客户机中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
在ARAV4M机构上,操作系统典型的施用WFE(等待事件)指令来等待请求3个锁,并行使SEV(发送事件)指令来释放贰个锁。APRADOM架构允许WFE指令被Hypervisor捕获,可是SEV指令不能够被抓获。为了缓解vCPU堆积问题,全数3种Hypervisor(Xen
A路虎极光M,KVM AQashqaiM和Xvisor
ALX570M)都选拔捕获WFE指令的法子使得vCPU让出时间片。A福睿斯M架构的vCPU抢占难题能够由此采取半虚拟化锁的办法来缓解,可是要求对客户机操作系统实行源码级的修改。

6. 锁同步延迟

在虚拟化环境中,锁同步延迟难题是[参考文献23]中关系的2个显然的标题。那些标题因如下二个调度器的留存而发出:

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

那边,四个调度器相互意识不到对方,导致客户机vCPU被Hypervisor随意抢占。大家提交了二个关于那种延迟和装有三个Hypervisor怎么样处理它们的一个不难易行介绍。

同贰个客户机中vCPU之间锁同步的不算处理导致了图11和12中呈现的四个不鲜明场景:vCPU抢占和vCPU堆积难题。三种难题都恐怕引致在获得同一个客户机的vCPU锁时增添等待时间。

当八个运营在享有锁的某主机CPU(pCPU0)上的vCPU(vCPU0)被吞没,而与此同时另一个周转在别的主机CPU(pCPU1)上的vCPU(vCPU1)正在等候这些锁,那么vCPU抢占难题就会时有产生。其余,发生在3个运转着多少个vCPU的单主机CPU上的锁调度争执难题也会造成vCPU堆积难点时有爆发。也正是说,希望得到有些锁的vCPU(vCPU1)抢占了运营在同八个主机CPU上的vCPU(vCPU0),不过vCPU0正在有着这么些锁。

在A索罗德M机构上,操作系统典型的行使WFE(等待事件)指令来等待请求五个锁,并选拔SEV(发送事件)指令来刑释2个锁。AKoleosM架构允许WFE指令被Hypervisor捕获,不过SEV指令不可能被捕获。为了消除vCPU堆积难题,全部3种Hypervisor(Xen
ALacrosseM,KVM ACRUISERM和Xvisor
AENCOREM)都应用捕获WFE指令的主意使得vCPU让出时间片。A奥迪Q7M架构的vCPU抢占难题可以通过行使半虚拟化锁的法门来化解,不过要求对客户机操作系统举行源码级的修改。

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

嵌入式系统须要有效的内部存款和储蓄器处理。对于嵌入式Hypervisor来说,内存管理的付出要求从长远的角度考虑。A纳瓦拉M架构提供2级翻译表(恐怕说嵌套页表),用于客户机内存虚拟化,即图13所示的2品级MMU。客户机操作系统负小编制程序第二阶段页表,将客户机虚拟地址(GVA)翻译到直接物理地址(IPA)。AGL450M
Hypervisor负主要编辑制程序第叁品级页表来从将直接物理地址(IPA)翻译成实际物理地址(PA)。
图片 13
TLB-miss(Translation Look-aside Buffers
miss,即页表缓冲缺点和失误)时务必寻找翻译表。那么些进度中动用的第叁品级页表的级数影响内部存款和储蓄器带宽和虚拟化系统的全部品质。比如最不佳的事态下,N级第一等级翻译表和M级第三品级翻译表供给NxM次内部存储器访问。对其他虚拟化系统上的客户机来说,TLB-miss损失都以不行昂贵的。为了减弱2等级MMU中的TLB-miss损失,ATiggoM
Hypervisor在第3品级创制更大的页。

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

嵌入式系统须要有效的内部存款和储蓄器处理。对于嵌入式Hypervisor来说,内部存款和储蓄器管理的支出必要从长商议。A君越M架构提供2级翻译表(可能说嵌套页表),用于客户机内部存款和储蓄器虚拟化,即图13所示的2等级MMU。客户机操作系统负责任编辑程第①品级页表,将客户机虚拟地址(GVA)翻译到直接物理地址(IPA)。AOdysseyM
Hypervisor负主要编辑制程序第3等级页表来从将直接物理地址(IPA)翻译成实际物理地址(PA)。

TLB-miss(Translation Look-aside Buffers
miss,即页表缓冲缺点和失误)时必须寻找翻译表。那些进程中采取的第③等级页表的级数影响内部存储器带宽和虚拟化系统的总体品质。比如最不佳的境况下,N级第二阶段翻译表和M级第贰等级翻译表须求NxM次内部存款和储蓄器访问。对别的虚拟化系统上的客户机来说,TLB-miss损失都以那些高昂的。为了减小2阶段MMU中的TLB-miss损失,ATiguanM
Hypervisor在第三等级创造更大的页。

7.1 Xen ARM

Xen A奇骏M为每一种客户机或域(Dom0或DomU)创立二个独自的3级第1品级翻译表。Xen
A普拉多M能成立4K字节,2M字节或1G字节的第3阶段翻译表项。Xen
A安德拉M也按需分配客户机内部存款和储蓄器,并打算根据IPA和PA对齐构造尽恐怕最大的第③品级翻译表项。

7.1 Xen ARM

Xen ARubiconM为各类客户机或域(Dom0或DomU)创设2个独自的3级第壹品级翻译表。Xen
ACR-VM能成立4K字节,2M字节或1G字节的第1阶段翻译表项。Xen
AHighlanderM也按需分配客户机内部存款和储蓄器,并准备根据IPA和PA对齐构造尽可能最大的第贰品级翻译表项。

7.2 KVM ARM

KVM用户空间工具(QEMU)预先分配作为客户机RAM使用的用户空间内部存款和储蓄器,并向KVM内核模块公告其地点。KVM内核模块为各种客户机vCPU创制2个独立的3级第二品级翻译表。典型的,KVM
ARM将创立4K字节大小的第壹阶段翻译表项,不过也能够选拔巨大化TLB优化方式创造2M字节大小的第壹品级翻译表项。

7.2 KVM ARM

KVM用户空间工具(QEMU)预先分配作为客户机RAM使用的用户空间内存,并向KVM内核模块布告其地方。KVM内核模块为各类客户机vCPU创设1个独门的3级第二品级翻译表。典型的,KVM
AQX56M将创制4K字节大小的第①阶段翻译表项,可是也可以接纳巨大化TLB优化情势创设2M字节大小的第③品级翻译表项。

7.3 Xvisor ARM

Xvisor
ACRUISERM在客户机成立时,预先分配三番五次的主机内部存储器以做为客户机RAM。它为种种客户机制造3个独自的3级第①品级翻译表。Xvisor
AHavalM能创立4K字节,2M字节或1G字节的第①阶段翻译表项。其余,Xvisor
A纳瓦拉M总是基于IPA和PA对齐创造尽可能最大的第壹等级翻译表项。最终,客户机RAM是扁平化和连接的(不像任何Hypervisor)。那有助于缓存预取访问,从而尤其升高客户机内部存款和储蓄器访问质量。

7.3 Xvisor ARM

Xvisor
AQX56M在客户机创立时,预先分配再三再四的主机内部存款和储蓄器以做为客户机RAM。它为各个客户机创建2个独自的3级第叁等级翻译表。Xvisor
A福特ExplorerM能创建4K字节,2M字节或1G字节的第一阶段翻译表项。其它,Xvisor
AEnclaveM总是基于IPA和PA对齐创造尽也许最大的第1等级翻译表项。最终,客户机RAM是扁平化和一连的(不像任何Hypervisor)。那促进缓存预取访问,从而尤其升级客户机内部存款和储蓄器访问质量。

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

嵌入式系统要求小内存占用([参考文献[24])。下表I,II和III显示Cubieboard2([参考文献[25])上的装置要求和纤维内部存款和储蓄器占用。因而后边难题回答如下:

  1. 内需满意哪些条件才能使Xen APAJEROM,KVM APRADOM和Xvisor A库罗德M运转在系统上?
  2. Xen A奥迪Q7M,KVM A普拉多M和Xvisor A君越M须求消耗的的非常小内部存款和储蓄器是有个别?

图片 14
上图中:

  • a)
    Xen工具栈与别的重视库独立安装。那么些工具栈允许用户管理虚拟机创制、销毁和安插。它可以通过命令行终端和图片接口使用([参考文献[10])。
  • b) Xen保留大量内部存款和储蓄器,用于事件通道。
    图片 15
    图片 16
    上图中:
  • c)
    Xvisor内核在单个二进制文件中包罗完整的虚拟化功效,并且随着更加多新本性的加码从而增强到2~3M字节;
  • d)
    Xvisor使用编译选项来界定自身的内部存款和储蓄器占用,A昂CoraM架构暗中认可设置为16M字节。

8. 内部存储器占用相比

嵌入式系统必要小内部存款和储蓄器占用([参考文献[24])。下表I,II和III显示Cubieboard2([参考文献[25])上的装置必要和纤维内部存储器占用。因而后边难点回答如下:

  1. 须要满足哪些条件才能使Xen A中华VM,KVM AQX56M和Xvisor A奥迪Q3M运行在系统上?
  2. Xen A奥迪Q5M,KVM AOdysseyM和Xvisor ARubiconM供给开销的的蝇头内部存款和储蓄器是有个别?

上图中:

  • a)
    Xen工具栈与其余依赖库独立安装。这一个工具栈允许用户管理虚拟机创制、销毁和陈设。它能够通过命令行终端和图片接口使用([参考文献[10])。
  • b) Xen保留多量内部存款和储蓄器,用于事件通道。
上图中:
  • c)
    Xvisor内核在单个二进制文件中包罗完整的虚拟化效用,并且随着更加多新特点的增添从而增强到2~3M字节;
  • d)
    Xvisor使用编译选项来界定自身的内部存款和储蓄器占用,A奥德赛M架构暗中认可设置为16M字节。

9. 标准测试程序

小编们尝试中动用的尺度测试程序专注于从CPU费用、内部存款和储蓄器带宽和锁同步机制方面相比Hypervisor。

9. 尺度测试程序

我们尝试中行使的条件测试程序专注于从CPU费用、内存带宽和锁同步机制方面比较Hypervisor。

9.1 Dhrystone

Dhrystone是一个用来衡量处理器整形质量的简练标准测试([参考文献[26])。Dhrystone基准测试的每秒总迭代次数被叫作每秒Dhrystones。进而,Dhrystone结果的其它贰个表示是DMIPS(每秒百万条Dhrystone指令数),也等于每秒Dhrystones除以1757。DMIPS只可是是与VAX
1七分之一80,,典型的1
MIPS机器([参考文献[27])举办相比较的微处理器系列的属性。

9.1 Dhrystone

Dhrystone是二个用以度量处理器整形质量的简要标准测试([参考文献[26])。Dhrystone基准测试的每秒总迭代次数被叫做每秒Dhrystones。进而,Dhrystone结果的其余二个代表是DMIPS(每秒百万条Dhrystone指令数),也正是每秒Dhrystones除以1757。DMIPS只可是是与VAX
1七分之一80,,典型的1
MIPS机器([参考文献[27])举行比较的处理器类别的质量。

9.2 Cachebench

Cachebench来评估总括机种类内部存款和储蓄器体系的性质。它小心于把电脑内外的高速缓存的五个级别参数化。Cachebench举办区别缓冲区大小的测试:内部存款和储蓄器设置、内存复制、整数读取,整数写入和整数读取-修改-写入。对于我们的实验,我们将生成以兆字节每秒为单位的内部存款和储蓄器复制和整数读取-修改-写入测试的结果。

9.2 Cachebench

Cachebench来评估总计机体系内部存储器连串的性情。它小心于把电脑内外的高速缓存的七个级别参数化。Cachebench进行分歧缓冲区大小的测试:内部存储器设置、内部存款和储蓄器复制、整数读取,整数写入和整数读取-修改-写入。对于大家的实验,大家将生成以兆字节每秒为单位的内部存款和储蓄器复制和整数读取-修改-写入测试的结果。

9.3 Stream

内存带宽已经被认为能够影响系统质量([参考文献[29])。STREAM是叁个设计用来度量持续内部存款和储蓄器带宽(以兆字节每秒为单位)的简便复合基准测试程序。STREAM基准测试被醒目标宏图在此外系统的可怜大的多寡集合上中国人民解放军海军事工业程学院业作,而不是可用的全速缓冲上。大家尝试中动用的STREAM版本是v5.10,两千000数组大小(大致45.8M字节)

9.3 Stream

内部存款和储蓄器带宽已经被认为能够影响系统质量([参考文献[29])。STREAM是三个企划用来度量持续内部存款和储蓄器带宽(以兆字节每秒为单位)的简单复合基准测试程序。STREAM基准测试被强烈的陈设在其他系统的极大的数量集合上行事,而不是可用的神速缓冲上。大家尝试中动用的STREAM版本是v5.10,3000000数组大小(大约45.8M字节)

9.4 Hackbench

哈克bench通过规定调度给定数据职务耗费的岁月来衡量系统调度器品质。哈克bench的严重性工作是调度线程和进度。调度实体通过套接字或管道收发数据来电视发表。运转测试程序时能够对数码大小和音讯数目举行设置。

9.4 Hackbench

哈克bench通过规定调度给定数据职责开销的小运来衡量系统调度器质量。哈克bench的要害办事是调度线程和经过。调度实体通过套接字或管道收发数据来电视发表。运维测试程序时亦可对数据大小和音信数目进行安装。

10. 实验

背后的尝试意在评估近年来提议的嵌入式Hypervisor –
Xvisor相较KVM和Xen的功用。本文试图在Cubieboard2([参考文献[25])上的客户机Linux上运维五个尺码测试程序。Cubieboard2是一块包罗1GB
RAM的AHavalM 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:2016年一月1二十四日颁发的风靡的Xvisor-0.2.4+被作为Hypervisor。客户机内核是Linux-3.16-rc3。

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

  1. 没有别的Hypervisor的主机;
  2. Xvisor客户机;
  3. KVM客户机;
  4. HugeTLB模式KVM客户机;
  5. Xen客户机。

为了确认保证只有CPU费用,内部存款和储蓄器带宽和锁同步延迟被引入测试结果,四个测试向量都有二个全数3个vCPU的半虚拟化客户机。而且,全体Hypervisor都开始展览了如下优化:

  • 平素不来自于通用中断控制器的维护中断;
  • Xen A途胜M一级页帮忙;
  • WFE指令捕获-出让vCPU机制。

表IV和V展现以DMIPS为单位的Dhrystone结果。Xvisor客户机的DMIPS比KVM客户机高差不多0.2%,比HugeTLB方式KVM客户机高0.19%,比Xen
DomU高0.57%。Dhrystone基准测试相当小,在运营时大概能够置身高速缓存中,由此内部存款和储蓄器访问费用不会对其产生震慑。尽管只有三个DMIPS的晋级,那依然升高了全部种类品质,因为1个DMIPS等于每秒175八回迭代。所以,使躯体上校是每秒数千次迭代(常常是几百万条机器指令)。
图片 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

10. 实验

背后的尝试意在评估方今提议的嵌入式Hypervisor –
Xvisor相较KVM和Xen的效能。本文试图在Cubieboard2([参考文献[25])上的客户机Linux上运营伍个尺码测试程序。Cubieboard2是一块包涵1GB
RAM的A福特ExplorerM Cortex-A7双核1GHz单板。试验中利用了如下Hypervisor版本:

  1. KVM:
    最新的Linux-3.16-rc3被看做主机KVM内核。客户机内核是Linux-3.16-rc3。
  2. Xen:二零一六年4月三1二日颁发的风靡的Xen-4.5-unstable内核被当作Hypervisor。Dom0内核和DomU均为Linux-3.16-rc3。
  3. Xvisor:二〇一四年11月3日发表的新颖的Xvisor-0.2.4+被用作Hypervisor。客户机内核是Linux-3.16-rc3。

实验结果通过七个测试向量获取。第3个运转在3个单核上,而另二个周转在贰个双核上。测试系统(SUT,systems
under test)如下:

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

为了保险唯有CPU费用,内部存款和储蓄器带宽和锁同步延迟被引入测试结果,三个测试向量都有三个富有一个vCPU的半虚拟化客户机。而且,全数Hypervisor都进展了之类优化:

  • 从未有过来源于通用中断控制器的维护中断;
  • Xen A奇骏M一流页辅助;
  • WFE指令捕获-出让vCPU机制。

表IV和V突显以DMIPS为单位的Dhrystone结果。Xvisor客户机的DMIPS比KVM客户机高大致0.2%,比HugeTLB形式KVM客户机高0.19%,比Xen
DomU高0.58%。Dhrystone基准测试十分小,在运作时大约能够置身高速缓存中,由此内存访问开支不会对其产生潜移默化。尽管唯有三个DMIPS的升级,这依旧进步了任何系统特性,因为三个DMIPS等于每秒17六十一回迭代。所以,使躯体育师范高校长是每秒数千次迭代(日常是几百万条机器指令)。

表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%。

表X和XI展现Xvisor客户机的持续性内部存款和储蓄器带宽比KVM客户机高大致0.72%,比HugeTLB格局KVM客户机高1.46%,比Xen
DomU高1.2%。

表XII和XIII中的哈克bench结果展现示Xvisor客户机的职责分发延迟比KVM客户机低大约12.5%,比HugeTLB形式KVM客户机低5.62%,比Xen
DomU低6.39%。

11. 结论

这篇诗歌介绍了作为开源Hypervisor –
Xen和KVM品质缺点化解方案的新嵌入式Hypervisor –
Xvisor。Xvisor的落到实处优点浮以往如下多少个方面:

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

并且,4种分化基础准测试的显得结果支撑了Xvisor的贯彻优势。

试验结果呈现Dhrystone,Cachebench和Stream基准测试在Xvisor
APAJEROM客户机上全部更高的速率。那评释Xvisor A奇骏M客户机械和工具有相对于KVM
A酷威M客户机和Xen A揽胜极光M
DomU更低的CPU耗费和更高的内部存款和储蓄器带宽。进而,哈克bench在Xvisor
A卡宴M客户机上全部更少的实行时间。那表明Xvisor A酷威M客户机械和工具有绝对于KVM
AQX56M客户机和Xen A大切诺基M
DomU更低的锁同步延迟和编造定时器中断开支。那个结果表示Xvisor
A瑞虎M下的客户机相对于KVM A奥迪Q3M和Xen A帕杰罗M更接近原生品质。最终, Xvisor
A本田UR-VM更小的内部存款和储蓄器占用允许它在嵌入式系统上更有效的选择有限的内部存款和储蓄器。

Xvisor允许额外的板级辅助包(BSP)。愈来愈多的多核体验(不止是双核)也是唯恐的。而且,基于上述衡量数据已经申明的性质升高,Xvisor以后在网络和存款和储蓄虚拟化方面的贯彻也能拥有更好的习性。

11. 结论

那篇杂文介绍了作为开源Hypervisor –
Xen和KVM质量缺点化解方案的新嵌入式Hypervisor –
Xvisor。Xvisor的落实优点映今后如下多少个方面:

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

再正是,4种分化基础准测试的来得结果支撑了Xvisor的贯彻优势。

实验结果展现Dhrystone,Cachebench和Stream基准测试在Xvisor
ARAV4M客户机上全体更高的速率。那注解Xvisor AOdysseyM客户机械和工具有相对于KVM
A本田UR-VM客户机和Xen AXC60M
DomU更低的CPU开支和更高的内部存款和储蓄器带宽。进而,哈克bench在Xvisor
A奥迪Q7M客户机上全数更少的履行时间。那评释Xvisor A昂科拉M客户机械和工具有相对于KVM
A瑞虎M客户机和Xen A奥迪Q5M
DomU更低的锁同步延迟和虚拟定时器中断开支。那么些结果表示Xvisor
A汉兰达M下的客户机相对于KVM A奥迪Q5M和Xen A大切诺基M更接近原生品质。最后, Xvisor
A安德拉M更小的内部存储器占用允许它在嵌入式系统上更实惠的接纳有限的内部存款和储蓄器。

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

参考文献

  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](http://infocenter.arm.com/help/topic/com.arm.doc.ddi0406c/index.
    html)
  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