CN102103517A - 高效嵌套虚拟化 - Google Patents

高效嵌套虚拟化 Download PDF

Info

Publication number
CN102103517A
CN102103517A CN2010106179820A CN201010617982A CN102103517A CN 102103517 A CN102103517 A CN 102103517A CN 2010106179820 A CN2010106179820 A CN 2010106179820A CN 201010617982 A CN201010617982 A CN 201010617982A CN 102103517 A CN102103517 A CN 102103517A
Authority
CN
China
Prior art keywords
vmm
client
virtual
processor
entity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010106179820A
Other languages
English (en)
Other versions
CN102103517B (zh
Inventor
董耀祖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN102103517A publication Critical patent/CN102103517A/zh
Application granted granted Critical
Publication of CN102103517B publication Critical patent/CN102103517B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45566Nested virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

在本发明的一个实施例中,使嵌套虚拟化环境中的退出和/或进入过程更高效。例如,层0(L0)虚拟机管理器(VMM)可直接仿真层2(L2)客户中断,而不是通过层1(L1)VMM间接地仿真。该直接仿真可通过例如在L1 VMM与L0 VMM之间共享虚拟状态(例如虚拟CPU状态、虚拟设备状态和/或虚拟物理存储器状态)来进行。作为另一示例,L1 VMM信息(例如L2物理到机器地址转换表)可在L1 VMM与L0 VMM之间被共享。

Description

高效嵌套虚拟化
背景技术
虚拟机系统允许物理机器被分区或共享,以使该机器的底层硬件呈现为一个或多个独立工作的虚拟机(VM)。虚拟机监控程序(VMM)可在计算机上运行,并向其他软件呈现一个或多个VM的抽象。每个VM可用作运行其自己的操作系统(OS)和/或应用程序软件的自持平台。VM内的软件执行可统称为客户软件。
客户软件可期望如同在专用计算机上而不是在VM上运行。即,客户软件可期望控制各种事件,并可访问计算机(例如物理机)上的硬件资源。该物理机器的硬件资源可包括一个或多个处理器、驻留在该处理器上的资源(例如控制寄存器、高速缓存以及其他)、存储器(以及诸如描述符表的驻留在存储器内的结构)以及驻留在物理机中的其他资源(例如输入—输出(I/O)设备)。这些事件例如可包括中断、异常、平台事件(例如初始化(INIT)或系统管理中断(SMI))等。
VMM可按需使客户软件状态信息(状态)换入/出或传入/出物理机的处理器、设备、存储器、寄存器等。处理器可在VM与VMM之间的转换期间换入/出一些状态信息。在一些情况下,VMM可通过允许对底层物理机的直接访问来增强VM的性能。当操作在客户软件中以非特权模式执行(这将限制对物理机的访问)时,或当操作将不利用VMM希望保持控制的物理机中的硬件资源时,上述做法特别合适。VMM被认为是VM的主机。
例如,只要客户操作会影响VMM或任一个VM的正确执行,则VMM重新获得控制。通常,在允许该操作继续进行至底层物理机或代表客户仿真该操作和/或硬件之前,VMM检查此类操作以确定是否存在问题。例如,当客户访问I/O设备、试图改变机器配置(例如通过改变控制注册值)、试图访问存储器的某些区域等等时,VMM可能需要重新获得控制。
支持VM操作的现有的物理机可利用诸如虚拟机控制结构(VMCS)、虚拟机控制块(VMCB)等等结构来控制VM的执行环境。以VMCS为例,VMCS可被存储于存储器的一个区域中,且可例如包含客户状态、VMM状态以及表明在客户执行期间VMM希望重新获得控制的条件的控制信息。物理机中的一个或多个处理器可从VMCS读取信息以确定VM和VMM的执行环境,并适当地限制客户软件的行为。
当转换至VM(例如进入)或转换出(例如退出)VM时,物理机的一个或多个处理器可装载或存储机器状态信息。然而,在例如VMM由另一VMM主存的嵌套虚拟化环境下,进入和退出方案在尝试管理例如状态信息和存储器信息时会变得麻烦和低效。
附图简述
根据所附权利要求、以下一个或多个示例实施例的详细描述以及相应的附图,本发明的实施例的特征和优点将变得显而易见,在附图中:
图1和2示出用于仿真设备的常规嵌套虚拟化环境和方法。
图3包括本发明的一个实施例中的用于高效嵌套虚拟化的方法。
图4包括用于实现本发明各个实施例的系统框图。
具体实施方式
在以下描述中,陈述了多个具体细节。然而,应当理解的是,可不通过这些具体细节来实施本发明的实施例。未详细示出众所周知的电路、结构以及技术,以免混淆对本描述的理解。对“一个实施例”、“一实施例”、“示例实施例“、“多个实施例”等等的引用表明所描述的实施例可包括特定特征、结构或特性,但并非每个实施例都一定包括那些特定特征、结构或特性。此外,某些实施例可具有针对其它实施例所描述的特征中的部分、全部特征或不具有那些特征。此外,如本文所使用的“第一”、“第二”、“第三”等描述了共同的对象,且表明所指的是相同对象的不同实例。此类形容词不旨在表明如此描述的对象必须是按照时间、空间、排序或任何其他方式的给定顺序。
图1包括常规分层嵌套虚拟化环境的示意框图。例如,系统100包括层0(L0)115、层1(L1)110以及层2(L2)105。VM1 190和VM2 195都位于L0 VMM 130“上方”或与L0 VMM 130一起执行。VM1 190包括由客户操作系统OS1 125支持的应用程序APPs1 120。VM2 195“包括”L1VMM 160。因此,系统100是其中例如L1 VMM 160位于L0 VMM 130上或“嵌套”在L0 VMM 130中的嵌套虚拟化环境。L1 VMM 160与下层L0VMM 130“一起”操作。L1 VMM 160“支持”客户VM20 196和客户VM21197,客户VM20 196和客户VM21 197分别运行OS20 170/Apps20 180和OS21 175/Apps21 185。
L0 VMM 130可以是例如可利用英特尔的虚拟化技术(VT)、AMD的安全虚拟机等等的内核虚拟机(KVM),因此VMM可运行客户操作系统(OS)和应用程序。L0 VMM 130以及本文中所描述的其他VMM可包括管理程序,该管理程序可具有管理计算机系统上的多个操作系统(或同一操作系统的多个实例)的软件程序。该管理程序可管理系统的处理器、存储器和其他资源以对每个操作系统所需要或想要的作出分配。管理程序可包括肥管理程序(例如VMware ESX),其包括设备驱动程序、存储器管理、OS等。管理程序还可包括耦合在硬件与主机OS(例如Linux)之间的瘦管理程序(例如KVM)。管理程序可进一步包括具有服务OS以及运行在客户软件(例如Xen+域0)中的设备驱动程序的混合管理程序。
在系统100中,虚拟机扩展(VMX)引擎被提交给客户L1 VMM 160,客户L1 VMM 160将创建客户VM20 196和VM21 197。VM20 196和VM21197可分别由虚拟VMCSs vVMCS20 165和vVMCS21 166管理。vVMCS20165和vVMCS21 166可分别用诸如sVMCS20 145和sVMCS21 155的实际VMCS来遮蔽。当执行诸如VM20 196或VM21 197的L2客户时,每个sVMCS 145、155可被加载为物理VMCS。
图2示出用于仿真设备的常规嵌套虚拟化环境和方法。图2可与例如Linux主机OS和KVM 210一起使用。箭头1示出从被L0 VMM 210(类似于图1的L0 VMM 130)俘获的L2客户205(例如图1的VM20 196、VM21197)的VM退出。箭头2示出L0 VMM 210将该VM退出反弹或引导至L1客户215(类似于图1的L1 VMM 160),或更具体的L1 KVM 230模块。
箭头3通向L1 VMM 215(L2客户205的父事务),L1 VMM 215使用例如设备模型220、与半虚拟化客户设备的前端驱动程序互补的后端驱动程序等中的任一个来仿真诸如L2客户205的实体(例如客户、操作、事件、设备驱动程序、设备等)I/O行为。设备建模可帮助系统与各种设备驱动程序通过接口连接。例如,设备模型可将虚拟化的硬件层/接口从客户205转换至底层设备。该仿真类似于正常的单层(非嵌套)特权资源访问进行,但通过嵌套虚拟化,I/O事件(例如请求)首先被L0 VMM 210俘获,然后如果L1 VMM 215被配置成接收该事件,则L0 VMM210将该事件反弹至L1 VMM 215中。L1 VMM设备模型220可按照与单层虚拟化时相似的方式为每个客户保持虚拟状态(vState)225,且可向L1 OS要求I/O事件服务。
此外,在嵌套虚拟化中,例如,I/O可从L2客户205被转换至L1虚拟主机I/O 240。虚拟主机I/O 240通过位于L0 VMM 210中的另一层设备模型(未在图2中示出)来仿真。该过程可比单层虚拟化慢。因此,虚拟主机I/O 240可以是由L0 VMM 210中的设备模型仿真的设备驱动程序。虚拟主机I/O 240也可以是由L0 VMM 210中的后端驱动程序提供服务的半虚拟化的前端驱动程序。主机I/O 245可以是物理I/O设备的I/O驱动程序。经由箭头4和5,L1 VMM 215可将出站的I/O(例如网络分组)经由L0 VMM210转发给底层硬件。
然后可从硬件接收入站的I/O,然后由L0设备模型或后端驱动程序等通过L0 VMM 210经由箭头6将入站I/O路由至L1 VMM 215虚拟主机I/O240,并经由箭头7将入站I/O路由至设备模型220。在设备模型完成仿真之后,它可要求L1 VMM 215经由L0 VMM 210经由箭头8和9通知L2客户205以指示提供I/O服务完成。L0 VMM 210可仿真来自L1 VMM 215的虚拟VM恢复事件以恢复L2客户205。
如方法200中可见,由于例如多层嵌套环境固有的特权限制,使用常规嵌套虚拟化进程提供I/O服务是间接冒险。例如,利用嵌套虚拟化,L1VMM 215以去特权化的方式操作,从而必须依赖于有特权的L0 VMM 210来访问有特权的资源。这是低效的。
以下说明该低效性。例如,单层VMM中的I/O仿真可访问系统有特权的资源许多次(例如访问次数(“NA”))以成功地仿真客户行为。具体而言,单层VMM可访问其I/O仿真通道中的诸如控制寄存器(CR)、物理I/O寄存器和/或VMCS寄存器的有特权资源。然而,在嵌套虚拟化中,该过程可能是不同的。例如,在单层虚拟化中仿真L2客户I/O的VMM在嵌套虚拟化结构中成为L1 VMM。该L1 VMM现在以非特权模式运行。L1VMM中的每个有特权的资源访问现在将触发往L0 VMM的VM退出以便进一步仿真。该触发是对L2客户VM与L1 VMM之间进行的俘获的附加。因此,每次访问都存在增加的“每次访问的周期数(NC)”或“Per_VM_Exit_cost(每次VM退出成本)”。因此,L2客户的I/O仿真的附加成本变成L2NC=NC*NA。相比于单层虚拟化,这是大的计算开销。当使用KVM时,NV大约可以是500个周期,且NA可约为25。因此,L2NC=5,000周期/每次访问*25次访问=125,000周期的开销。
在本发明的一个实施例中,使嵌套虚拟化环境中的退出和/或进入过程更高效。例如,L0 VMM可直接仿真L2客户I/O,而不是通过L1 VMM间接仿真。该直接仿真可通过例如在L1 VMM与L0 VMM之间共享虚拟客户状态(例如虚拟CPU状态、虚拟设备状态和/或虚拟物理存储器状态)来进行。作为另一示例,L1 VMM信息(例如以下寻址的L2物理到机器(“p2m”)地址转换表)可在L1 VMM与L0 VMM之间被共享。
在本发明的一个实施例中,例如,因为同一VMM在L0和L1层上执行,所以可实现该效率增益。这种情况可能在例如在第二KVM之上运行第一KVM的多层VT(虚拟化)情况下出现。在这样的情形下,L0和L1 VMM两者中的设备模型相同,且因此这些设备模型理解L0或L1 VMM所使用的虚拟设备状态格式。
然而,本发明的实施例不需要将同一VMM用于L0和L1层。本发明的一些实施例可将不同的VMM类型用于L0和L1层。在此类情况下,L2客户的虚拟状态信息可被包括在L1 VMM和L1 VMM设备模型中,但仍与L0 VMM和L0 VMM设备模型一起共享并被L0 VMM和L0 VMM设备模型理解。
作为对比,在常规系统中,L1 VMM已知的虚拟客户状态不为L0 VMM所知或共享(反之亦然)。缺少共享可能是因为例如L1 VMM不知道它是在本机平台还是在虚拟化的平台上运行。此外,L1 VMM可能不理解例如L0 VMM承认的共享状态的位格式/语义。此外,在常规系统中,L2客户是L1 VMM的客户,因此L2客户不知道L0 VMM。因此,对于单层虚拟化情形,L2客户退出转向L1 VMM而不是L0 VMM。如关于图2所描述的,在两层虚拟化情况下,L0 VMM仍确保L2客户VM退出转向L1 VMM。因此,本发明的一些实施例与常规系统不同,因为例如虚拟状态(例如虚拟客户状态)在L0与L1 VMM之间被共享。因此,L0 VMM可仿真例如L2客户I/O,并避免通常与嵌套虚拟化相关联的一些开销。
图3包括用于高效嵌套虚拟化的方法300。为说明目的,方法300被示为处理网络分组的传输,但该方法不限于处理此类事件,且可替代地应用于诸如I/O事件(例如接收、处理和传输网络信息、磁盘读写、流输入输出等)的各种事件。此外,该方法不限于仅对诸如仿真设备的实体起作用。例如,本方法的实施例也可对诸如半虚拟化设备驱动程序的实体起作用。
然而,在完整陈述图3之前,首先更完整地陈述虚拟化和半虚拟化的环境。虚拟化环境包括全虚拟化环境以及半虚拟化环境。在全虚拟化环境中,每个客户OS可如同底层VM仅仅是客户OS支持的独立物理处理系统地操作。因此,客户OS可预期或希望VM根据所支持的物理处理系统的体系结构规范来工作。作为比较,在半虚拟化中,客户OS帮助VMM提供虚拟化环境。因此,客户OS可被表征为虚拟化已知。半虚拟化的客户OS可能仅能够协同特定VMM操作,而全虚拟化环境的客户机OS可在两种或更多种不同类型的VMM上操作。半虚拟化可按需对客户操作系统的诸如内核的源代码作出改变,以使它能在特定VMM上运行。
半虚拟化I/O(例如I/O事件)可与半虚拟化OS内核(经修改)或全虚拟化OS内核(未经修改)一起使用或在其中使用。半虚拟化I/O可使用客户设备中的前端驱动程序来与位于VMM(例如L0 VMM)中的后端驱动程序通信。此外,半虚拟化可使用共享存储器来传送批量数据,以节省俘获和仿真工作,而全虚拟化I/O可能需要遵循由原始仿真设备提供的语义。
返回参照图3,方法300包括L0 VMM 330和支持VM 20 396的L1 VMM 360,所有这些组合以形成用于诸如例如英特尔Epro1000(82546EB)NIC的网络接口卡(NIC)的虚拟化环境。在方法300开始之前,L0 VMM330可创建可运行L1 VMM 360的VM2(未示出)。此外,L0 VMM 330可能知道VM2存储器分配或L1客户伪物理地址向层0机器地址的转换表或映射(例如L1_to_L0_p2m[])。在行1,L1 VMM 360可创建被包括在VM2“之中”的L2客户VM20396。L1 VMM 360可知道VM20 396的伪P2M映射(即VM20 396客户物理地址向L1 VMM 360伪物理地址的映射(例如L2_to_L1_p2m[]))。在行2中,L1 VMM 360可发出请求(例如通过超调用H0或其它通信通道)以要求L0 VMM 330将L2客户物理地址映射至用于VM 20 396的L0 VMM 330实际物理机器地址表(例如L2_to_L0_p2m[])。
在行3中,L0 VMM 330可从行2接收该请求。在行4中,L0 VMM 330可使用之前接收或已知的信息(即L2_to_L1_p2m[])将VM20客户物理地址重新映射至L0机器地址(L2_to_L0_p2m[])。这是通过例如利用L1 VMM360或L1客户(VM2)的P2M表(L1_to_L0_p2m[])来实现的,因为L2客户存储器是L1客户(VM2)的一部分,所以这是可能的。例如,对于给定L2客户物理地址x:L2_to_L0_p2m[x]=L1_to_L0_p2m[L2_to_L1_p2m[x]]。
在行5,L1 VMM 360可启动VM20 396,且VM20 396的执行可开始。在行6,VM 20 OS可开始。在行7,VM20 396 OS的执行可实现诸如虚拟NIC设备的虚拟设备。
这可使虚拟NIC设备在行8初始化。在行9,L1 VMM 360可请求与L0 VMM 330通信(例如通过超调用H1或其它通信通道),以共享NIC设备的客户状态(例如vm20_vepro1000_state)和/或CPU的客户状态。客户虚拟CPU或处理器状态可包括例如vm20-vCPU-state(vm20-vCPU-状态),其可对应于诸如VM20 396的12_vCR3的L2虚拟控制寄存器(CR)CR3。状态信息可通过例如共享存储器来共享,在共享存储器处L1 VMM和L0VMM二者可看到被共享状态并操纵那些状态。
在行10,L0 VMM 330可接收请求(例如超调用H1),且在行11,L0 VMM 330可将虚拟NIC设备状态重新映射到L0 VMM 430内部地址空间中。因此,L0 VMM 430可能能够访问虚拟NIC和CPU状态信息。
在行12,VM 20可通过填充传输缓冲器及其直接存储器存取(DMA)控制数据结构(诸如英特尔82546EB NIC控制器中的DMA描述符环结构)而开始发送分组。L0 VMM 330现在绕过L1 VMM 360,并与VM 20 396通过接口直接连接。在行13,如VM 20在其本机环境下操作时将会进行的,通过对诸如英特尔82546EB NIC控制器中的传输描述符尾部(TDT)寄存器的专用硬件寄存器编程,VM 20可通知虚拟NIC设备DMA描述符填充完成。TDT寄存器可以是存储器映射的I/O(MMIO)寄存器,但也可以是例如端口I/O。L1 VMM 360可能没有对MMIO地址的直接转换,该MMIO地址直接转换可能允许L1 VMM 360通过退出事件(例如页面错误(#PF)VM退出)俘获和仿真客户MMIO访问。因此,L0 VMM 330可能没有仿真L1 VMM转换的MMIO地址转换。
在行14,TDT寄存器的地址触发VM退出(#PF)。L0 VMM 330可从VM退出信息获得该#PF的线性地址(例如诸如12_gva的MMIO访问地址)。在行15,L0 VMM 330可走查或遍历L2客户页面表以将12_gva转换成其L2客户物理地址(例如12_gpa)。对该L2客户页面表的走查或遍历可从由L2客户CR3(例如12_vcr3)所指向的L2客户物理地址开始。
在行16,LO VMM 330可确定12_gpa是否是经加速的I/O(即I/O仿真可绕过L1 VMM 215)。如果12_gpa是经加速的I/O,则在行17,L0 VMM可基于共享的虚拟NIC和CPU状态信息(例如vm20_vepro1000_state和vm20-vCPU-state)执行仿真。在行18,L0 VMM 330可取出L2虚拟NIC设备DMA描述符,并利用L2_to_L0_p2m表执行转换,以将12客户物理地址转换成实际机器物理地址。在行19,L0 VMM 330可具有传输有效载荷,并在L0主机I/O中传输该有效载荷。L0 VMM 330还可更新共享数据中的vm20_vepro1000_state和vm20-vCPU-state。在行20,L2客户可恢复。
因此,L0 VMM 330可使用(在L0 VMM 330与L1 VMM 360之间)共享的L2_to_L0_p2m表、vm20_vepro1000_state以及vm20-vCPU-state(例如12 vCR3)来访问虚拟NIC设备DMA描述符环和传输缓冲器,从而将分组直接发送至外部网络,而不经由L1 VMM 360将分组间接发送至外部网络。在L0 VMM 300必须将L2客户I/O访问传递到L1 VMM 360时,这样做会在L1 VMM 360与L0 VMM 330之间触发许多VM退出/进入动作。这些退出/进入动作可能导致糟糕的性能。
在方法300的示例中,分组传输并未触发中断请求(IRQ)。然而,如果IRQ已由于例如传输完成而引发,则L1 VMM 360可被用于虚拟中断注入。然而,在一个实施例中,通过共享诸如例如虚拟高级可编程中断控制器(APIC)状态、I/O APIC状态、消息告知中断(MSI)状态以及由L0 VMM330直接操纵的虚拟CPU状态信息的中断控制器状态信息,可进行进一步优化以绕过L1 VMM对IRQ注入的介入。
方法300涉及将设备模型用于分组传输。然而,本发明的一些实施例可采用可能与方法300并无实质不同的用于接收分组的方法,因此在此不再赘述。一般而言,如果L0 VMM能决定分组的最终接收者是L2客户,则同一方法可将接收到的分组(在L0 VMM 330中)复制到L2客户缓冲器中,并更新虚拟NIC设备状态。为此,L1 VMM 330可与L0 VMM共享其网络配置信息(例如L2客户的IP地址、L1 VMM的过滤信息)。此外,发送至不同L2VM的分组可到达同一物理NIC。因此,L0 VMM中的交换机可基于例如介质访问控制(MAC)地址、IP地址等将分组分发至不同的VM。
也可将与方法300相似的方法与半虚拟化设备驱动程序一起使用。例如,半虚拟化网络设备可与全仿真设备相似地操作。然而,在半虚拟化设备中,L2客户或前端驱动程序可以是VMM已知的驱动程序。服务VM(例如图2中的L1 VMM 215)可运行后端驱动程序以提供L2请求I/O请求而非图2中的设备模型220。该L0 VMM可具有理解来自L1 VMM后端驱动程序的共享设备状态并直接提供L2客户的请求的能力,这可能意味着L0VMM也可运行与本发明一个实施例中的L1 VMM中相同的后端驱动程序。具体地,利用图3的分组传输示例,当工作于半虚拟化环境时,行12和13可被变更。基于实际设备语义,行12和13中的操作可用诸如来自VM 20 396的超调用的更高效方法替换,以告知虚拟硬件开始分组传输。此外,提供来自行12-13的请求的行14-18可与基于实际设备语义传递的参数稍稍不同。例如,L0 VMM可使用半虚拟化I/O定义方法传递的缓冲器地址取出客户传输缓冲器。利用与上述用于发送分组的过程相似的半虚拟化I/O操作接收分组,因此在此不再赘述该方法。
因此,本文中所描述的各个实施例可允许L0 VMM在进行例如L2客户I/O仿真/服务时绕过L1 VMM。换言之,各个实施例在L0 VMM在某种程度上绕过L1 VMM的情况下直接向L2客户仿真/提供虚拟化实体(例如全虚拟化设备、半虚拟化设备等)。这可通过在L0 VMM与L1 VMM之间共享L2客户状态信息来完成,该L2客户状态信息通常仅为父VMM所知(例如,诸如在L2客户与L1 VMM之间)。在L1 VMM与L0 VMM之间共享帮助绕过L1 VMM以实现更佳性能。
在此处使用的模块指的是任何硬件、软件、固件、或它们的组合。通常被示为分开的模块边界一般不同而且有可能重叠。例如,第一和第二模块可共享硬件、软件、固件、或它们的组合,同时可能保留某些独立的硬件、软件或固件。在一个实施例中,术语“逻辑”的使用包括诸如晶体管、寄存器之类的硬件或诸如可编程逻辑器件之类的其它硬件。然而,在另一实施例中,逻辑还包括诸如固件或微码之类的与硬件集成的软件或代码。
实施例可在许多不同的系统类型中实现。现在参照图4,其中示出了根据本发明一实施例的系统的框图。多处理器系统500是点对点互连系统,且包括经由点对点互连550耦合的第一处理器570和第二处理器580。处理器570和580中的每一个可以是包括第一和第二处理器核(即处理器核574a和574b以及处理器核584a和584b)的多核处理器,尽管这些处理器中可能存在更多核。术语“处理器”可表示任何设备或设备的一部分,其处理来自寄存器和/或存储器的电子数据,以将该电子数据转换成可存储于寄存器和/或存储器中的其它电子数据。
第一处理器570还包括存储器控制器中枢(MCH)572与点对点(P-P)接口576和578。类似地,第二处理器580包括MCH 582与P-P接口586和588。MCH 572和582将处理器耦合至相应的存储器即存储器532和存储器534,它们可以是本地附连至相应处理器的主存储器(例如动态随机存取存储器(DRAM))的多个部分。第一处理器570和第二处理器580可分别经由P-P互连552和554耦合至芯片组590。芯片组590包括P-P接口594和598。
此外,芯片组590包括通过P-P互连539将芯片组590与高性能图形引擎538耦合的接口592。芯片组590又经由接口596耦合至第一总线516。多个输入/输出(I/O)设备514以及总线桥518可耦合至第一总线516,该总线桥518将第一总线516耦合至第二总线520。多个设备可耦合至第二总线520,包括例如键盘/鼠标522、通信设备526以及诸如磁盘驱动器或在一个实施例中为其它大容量存储设备的可包括代码530的数据存储单元528。此外,音频I/O 524可耦合至第二总线520。
实施例可以代码的形式实现,而且可存储在其上存储有可用于对系统编程以执行这些指令的存储介质上。该存储介质可包括但不限于:包括软盘、光盘、固态驱动器(SSD)、光盘只读存储器(CD-ROM)、可重写光盘(CD-RW)以及磁光盘的任何类型的盘;诸如只读存储器(ROM)、诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)之类的随机存取存储器(RAM)、可擦写可编程只读存储器(EPROM)、闪存、电可擦写可编程只读存储器(EEPROM)之类的半导体器件;磁卡或光卡;或适合于存储电子指令的任何其他类型的介质。
本发明诸实施例可在本文中参照诸如指令、函数、程序、数据结构、应用、应用程序、配置设定、代码等数据来进行描述。如本文中更详细描述的,当数据被机器访问时,机器可通过执行任务、定义抽象数据类型、建立低级硬件上下文、和/或执行其它操作来作出响应。该数据可被存储于易失性和/或非易失性数据存储中。出于本公开内容的目的,术语“代码”或“程序”或“应用程序”覆盖了广泛范围的部件和构造,包括驱动电路、处理器、例程、方法、模块以及子程序。因此,术语“代码”或“程序”或“应用程序”可被用于指代任何指令集合,这些指令集合在由处理系统执行时实现所需操作或多个操作。此外,替代实施例可包括使用比所公开的全部操作(例如图3)少的过程、使用附加操作的过程、使用按照不同顺序的相同操作的过程、以及其中将本文中所公开的各个操作组合、划分或者变更的过程。
虽然已经关于有限个实施例描述了本发明,但本领域技术人员将会理解从中得出的多种修改和变化。所附权利要求旨在覆盖落入本发明的真实精神和范围中的所有这些修改和变化。

Claims (20)

1.一种方法,包括:
使用处理器生成第一虚拟机(VM),并将所述第一VM存储于耦合至所述处理器的存储器中;
用所述第一VM执行客户应用程序;
用第一虚拟机监控程序(VMM)执行所述第一VM;
在嵌套虚拟化环境中用第二VMM执行所述第一VMM;以及
用所述第二VMM向所述客户直接仿真底层虚拟化设备;
其中所述第二VMM被包括在比所述第一VMM低的虚拟化层中,且所述虚拟化设备耦合至所述处理器。
2.如权利要求1所述的方法,其特征在于,包括通过绕过所述第一VMM用所述第二VMM向所述客户直接仿真所述设备。
3.如权利要求1所述的方法,其特征在于,包括基于在所述第一和第二VMM之间共享与所述设备相对应的虚拟设备状态信息,通过绕过所述第一VMM用所述第二VMM向所述客户直接仿真所述设备。
4.如权利要求1所述的方法,其特征在于,包括:
基于在所述第一和第二VMM之间共享虚拟处理器状态信息,通过绕过所述第一VMM用所述第二VMM向所述客户直接仿真所述设备;以及
将所述虚拟处理器状态信息存储在耦合至所述处理器的存储器部分中。
5.如权利要求1所述的方法,其特征在于,包括基于在所述第一和第二VMM之间共享与所述客户有关的虚拟物理存储器状态信息,通过绕过所述第一VMM用所述第二VMM向所述客户直接仿真所述设备。
6.如权利要求1所述的方法,其特征在于,包括基于在所述第一和第二VMM之间共享与所述客户有关的地址转换信息,通过绕过所述第一VMM用所述第二VMM向所述客户直接仿真所述设备。
7.如权利要求1所述的方法,其特征在于,所述第一和第二VMM包括等效的设备模型。
8.如权利要求1所述的方法,其特征在于,包括直接仿真与所述客户相对应的半虚拟化设备驱动程序。
9.如权利要求1所述的方法,其特征在于,包括通过绕过所述第一VMM从所述客户向所述第二VMM直接发送网络分组信息。
10.一种物品,包括存储指令的介质,所述指令使基于处理器的系统能:
在第一虚拟机(VM)上执行客户应用程序;
在第一虚拟机监控程序(VMM)上执行所述第一VM;
在嵌套虚拟化环境中在第二VMM上执行所述第一VMM;以及
用所述第二VMM向所述客户直接仿真底层虚拟化实体。
11.如权利要求10所述的物品,其特征在于,进一步存储指令,所述指令使所述系统能通过绕过所述第一VMM用所述第二VMM向所述客户直接仿真所述实体。
12.如权利要求10所述的物品,其特征在于,进一步存储指令,所述指令使所述系统能基于在所述第一和第二VMM之间共享与所述实体相对应的虚拟实体状态信息,通过绕过所述第一VMM用所述第二VMM向所述客户直接仿真所述实体。
13.如权利要求10所述的物品,其特征在于,进一步存储指令,所述指令使所述系统能基于在所述第一和第二VMM之间共享虚拟处理器状态信息,通过绕过所述第一VMM用所述第二VMM向所述客户直接仿真所述实体。
14.如权利要求10所述的物品,其特征在于,进一步存储指令,所述指令使所述系统能基于在所述第一和第二VMM之间共享与所述客户有关的虚拟存储器状态信息,通过绕过所述第一VMM用所述第二VMM向所述客户直接仿真所述实体。
15.如权利要求10所述的物品,其特征在于,所述实体包括虚拟化设备。
16.一种装置,包括:
耦合至存储器的处理器,用于:(1)在存储于所述处理器中的第一虚拟机(VM)上执行客户应用程序;(2)在第一虚拟机监控程序(VMM)上执行所述第一VM;(3)在嵌套虚拟化环境中在第二VMM上执行所述第一VMM;以及(4)用所述第二VMM向所述客户直接仿真底层虚拟化实体。
17.如权利要求16所述的装置,其特征在于,所述处理器用于通过绕过所述第一VMM用所述第二VMM向所述客户直接仿真所述实体。
18.如权利要求16所述的装置,其特征在于,所述处理器用于基于在所述第一和第二VMM之间共享虚拟客户状态信息,通过绕过所述第一VMM用所述第二VMM向所述客户直接仿真所述实体。
19.如权利要求16所述的装置,其特征在于,所述处理器用于基于在所述第一和第二VMM之间共享虚拟客户处理器状态信息,通过绕过所述第一VMM用所述第二VMM向所述客户直接仿真所述实体。
20.如权利要求16所述的装置,其特征在于,所述处理器用于基于在所述第一和第二VMM之间共享与所述客户有关的虚拟存储器状态信息,通过绕过所述第一VMM用所述第二VMM向所述客户直接仿真所述实体。
CN201010617982.0A 2009-12-22 2010-12-21 高效嵌套虚拟化 Expired - Fee Related CN102103517B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/644,847 2009-12-22
US12/644,847 US20110153909A1 (en) 2009-12-22 2009-12-22 Efficient Nested Virtualization

Publications (2)

Publication Number Publication Date
CN102103517A true CN102103517A (zh) 2011-06-22
CN102103517B CN102103517B (zh) 2015-10-14

Family

ID=43587125

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010617982.0A Expired - Fee Related CN102103517B (zh) 2009-12-22 2010-12-21 高效嵌套虚拟化

Country Status (4)

Country Link
US (1) US20110153909A1 (zh)
EP (1) EP2339462A1 (zh)
JP (1) JP2011134320A (zh)
CN (1) CN102103517B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103210373A (zh) * 2010-11-18 2013-07-17 国际商业机器公司 管理嵌套虚拟化环境
CN105354294A (zh) * 2015-11-03 2016-02-24 杭州电子科技大学 一种嵌套式文件管理系统及方法
WO2016206047A1 (en) * 2015-06-25 2016-12-29 Intel Corporation Techniques for reliable primary and secondary containers
CN106560791A (zh) * 2015-10-01 2017-04-12 阿尔特拉公司 高效虚拟i/o地址转换
CN106970823A (zh) * 2017-02-24 2017-07-21 上海交通大学 高效的基于嵌套虚拟化的虚拟机安全保护方法及系统
CN107273181A (zh) * 2017-05-31 2017-10-20 西安电子科技大学 一种多层嵌套虚拟化结构及其任务分配方法
CN107924321A (zh) * 2015-09-25 2018-04-17 英特尔公司 针对虚拟机退出的嵌套虚拟化
CN104106050B (zh) * 2011-12-22 2019-01-08 英特尔公司 允许高效的嵌套虚拟化

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959363B2 (en) * 2010-06-03 2015-02-17 Intel Corporation Systems, methods, and apparatus to virtualize TPM accesses
US9135043B1 (en) * 2010-09-28 2015-09-15 Netapp, Inc. Interface for enabling an application in a virtual machine to access high performance devices
US8819677B2 (en) * 2010-11-23 2014-08-26 International Business Machines Corporation Virtual machine data structures corresponding to nested virtualization levels
US8490090B2 (en) * 2011-02-17 2013-07-16 International Business Machines Corporation Multilevel support in a nested virtualization environment
JP5754294B2 (ja) * 2011-08-17 2015-07-29 富士通株式会社 情報処理装置、情報処理方法及び情報処理プログラム
CN103827824B (zh) * 2011-09-30 2017-09-05 英特尔公司 虚拟机和嵌套虚拟机管理器的验证发起
US9176763B2 (en) 2011-11-28 2015-11-03 Ravello Systems Ltd. Apparatus and method thereof for efficient execution of a guest in a virtualized environment
US20130145363A1 (en) * 2011-12-05 2013-06-06 Ravello Systems Ltd. System and method thereof for running an unmodified guest operating system in a para-virtualized environment
WO2013101191A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Virtual machine control structure shadowing
US9292316B2 (en) 2012-03-01 2016-03-22 International Business Machines Corporation Cloud of virtual clouds for increasing isolation among execution domains
JP5966466B2 (ja) * 2012-03-14 2016-08-10 富士通株式会社 バックアップ制御方法、および情報処理装置
JP5813554B2 (ja) * 2012-03-30 2015-11-17 ルネサスエレクトロニクス株式会社 半導体装置
US9311248B2 (en) * 2012-05-07 2016-04-12 Raytheon Cyber Products, Llc Methods and apparatuses for monitoring activities of virtual machines
US9122780B2 (en) * 2012-06-20 2015-09-01 Intel Corporation Monitoring resource usage by a virtual machine
US8832820B2 (en) 2012-06-25 2014-09-09 International Business Machines Corporation Isolation and security hardening among workloads in a multi-tenant networked environment
US9152449B2 (en) 2012-07-13 2015-10-06 International Business Machines Corporation Co-location of virtual machines with nested virtualization
US9740624B2 (en) 2012-10-08 2017-08-22 International Business Machines Corporation Selectable address translation mechanisms within a partition
US9280488B2 (en) 2012-10-08 2016-03-08 International Business Machines Corporation Asymmetric co-existent address translation structure formats
US9355040B2 (en) 2012-10-08 2016-05-31 International Business Machines Corporation Adjunct component to provide full virtualization using paravirtualized hypervisors
US9355032B2 (en) * 2012-10-08 2016-05-31 International Business Machines Corporation Supporting multiple types of guests by a hypervisor
US9600419B2 (en) 2012-10-08 2017-03-21 International Business Machines Corporation Selectable address translation mechanisms
US9348757B2 (en) 2012-10-08 2016-05-24 International Business Machines Corporation System supporting multiple partitions with differing translation formats
US9342343B2 (en) * 2013-03-15 2016-05-17 Adventium Enterprises, Llc Wrapped nested virtualization
US9176767B2 (en) * 2013-04-11 2015-11-03 Cisco Technology, Inc. Network interface card device pass-through with multiple nested hypervisors
JP5941868B2 (ja) * 2013-04-18 2016-06-29 株式会社日立製作所 仮想計算機システムおよび仮想計算機におけるi/o実施方法
US10749711B2 (en) 2013-07-10 2020-08-18 Nicira, Inc. Network-link method useful for a last-mile connectivity in an edge-gateway multipath system
US10454714B2 (en) 2013-07-10 2019-10-22 Nicira, Inc. Method and system of overlay flow control
WO2015041636A1 (en) 2013-09-17 2015-03-26 Empire Technology Development, Llc Virtual machine switching based on processor power states
US9983893B2 (en) 2013-10-01 2018-05-29 Red Hat Israel, Ltd. Handling memory-mapped input-output (MMIO) based instructions using fast access addresses
US9864623B2 (en) * 2013-11-21 2018-01-09 Centurylink Intellectual Property Llc Physical to virtual network transport function abstraction
US9916173B2 (en) * 2013-11-25 2018-03-13 Red Hat Israel, Ltd. Facilitating execution of MMIO based instructions
US9507935B2 (en) 2014-01-16 2016-11-29 Fireeye, Inc. Exploit detection system with threat-aware microvisor
US10261814B2 (en) 2014-06-23 2019-04-16 Intel Corporation Local service chaining with virtual machines and virtualized containers in software defined networking
JP2016018298A (ja) 2014-07-07 2016-02-01 富士通株式会社 通知変換プログラム及び通知変換方法
US9798567B2 (en) 2014-11-25 2017-10-24 The Research Foundation For The State University Of New York Multi-hypervisor virtual machines
US9934376B1 (en) 2014-12-29 2018-04-03 Fireeye, Inc. Malware detection appliance architecture
US9715403B2 (en) 2015-02-27 2017-07-25 Red Hat, Inc. Optimized extended context management for virtual machines
US10474813B1 (en) 2015-03-31 2019-11-12 Fireeye, Inc. Code injection technique for remediation at an endpoint of a network
US9912681B1 (en) 2015-03-31 2018-03-06 Fireeye, Inc. Injection of content processing delay in an endpoint
US10498652B2 (en) 2015-04-13 2019-12-03 Nicira, Inc. Method and system of application-aware routing with crowdsourcing
US10425382B2 (en) 2015-04-13 2019-09-24 Nicira, Inc. Method and system of a cloud-based multipath routing protocol
US10135789B2 (en) 2015-04-13 2018-11-20 Nicira, Inc. Method and system of establishing a virtual private network in a cloud service for branch networking
US10216927B1 (en) 2015-06-30 2019-02-26 Fireeye, Inc. System and method for protecting memory pages associated with a process using a virtualization layer
US10642753B1 (en) 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
US10726127B1 (en) 2015-06-30 2020-07-28 Fireeye, Inc. System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US10454950B1 (en) 2015-06-30 2019-10-22 Fireeye, Inc. Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks
US10395029B1 (en) 2015-06-30 2019-08-27 Fireeye, Inc. Virtual system and method with threat protection
US10033759B1 (en) 2015-09-28 2018-07-24 Fireeye, Inc. System and method of threat detection under hypervisor control
US10846117B1 (en) 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
US10447728B1 (en) 2015-12-10 2019-10-15 Fireeye, Inc. Technique for protecting guest processes using a layered virtualization architecture
US10108446B1 (en) 2015-12-11 2018-10-23 Fireeye, Inc. Late load technique for deploying a virtualization layer underneath a running operating system
WO2017129657A1 (en) 2016-01-29 2017-08-03 British Telecommunications Public Limited Company Disk encryption
US10754680B2 (en) * 2016-01-29 2020-08-25 British Telecommunications Public Limited Company Disk encription
WO2017129659A1 (en) 2016-01-29 2017-08-03 British Telecommunications Public Limited Company Disk encryption
US9846610B2 (en) 2016-02-08 2017-12-19 Red Hat Israel, Ltd. Page fault-based fast memory-mapped I/O for virtual machines
JP6304837B2 (ja) * 2016-03-16 2018-04-04 インテル・コーポレーション 仮想マシンおよびネストにされた仮想マシンマネージャの認証されたランチ
US10191861B1 (en) 2016-09-06 2019-01-29 Fireeye, Inc. Technique for implementing memory views using a layered virtualization architecture
CN108241522B (zh) * 2016-12-27 2022-05-17 阿里巴巴集团控股有限公司 虚拟化环境中的睡眠状态切换方法、装置及电子设备
US11706127B2 (en) 2017-01-31 2023-07-18 Vmware, Inc. High performance software-defined core network
US10992558B1 (en) 2017-11-06 2021-04-27 Vmware, Inc. Method and apparatus for distributed data network traffic optimization
US11252079B2 (en) 2017-01-31 2022-02-15 Vmware, Inc. High performance software-defined core network
US10992568B2 (en) 2017-01-31 2021-04-27 Vmware, Inc. High performance software-defined core network
US20200036624A1 (en) 2017-01-31 2020-01-30 The Mode Group High performance software-defined core network
US20180219765A1 (en) 2017-01-31 2018-08-02 Waltz Networks Method and Apparatus for Network Traffic Control Optimization
US11121962B2 (en) 2017-01-31 2021-09-14 Vmware, Inc. High performance software-defined core network
US10574528B2 (en) 2017-02-11 2020-02-25 Nicira, Inc. Network multi-source inbound quality of service methods and systems
US10778528B2 (en) 2017-02-11 2020-09-15 Nicira, Inc. Method and system of connecting to a multipath hub in a cluster
US10523539B2 (en) 2017-06-22 2019-12-31 Nicira, Inc. Method and system of resiliency in cloud-delivered SD-WAN
CN107272692A (zh) * 2017-07-18 2017-10-20 北京理工大学 基于微分平坦和自抗扰的无人车路径规划与跟踪控制方法
US10959098B2 (en) 2017-10-02 2021-03-23 Vmware, Inc. Dynamically specifying multiple public cloud edge nodes to connect to an external multi-computer node
US11115480B2 (en) 2017-10-02 2021-09-07 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US10999100B2 (en) 2017-10-02 2021-05-04 Vmware, Inc. Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider
US10999165B2 (en) 2017-10-02 2021-05-04 Vmware, Inc. Three tiers of SaaS providers for deploying compute and network infrastructure in the public cloud
US11516049B2 (en) 2017-10-02 2022-11-29 Vmware, Inc. Overlay network encapsulation to forward data message flows through multiple public cloud datacenters
US11089111B2 (en) 2017-10-02 2021-08-10 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US11223514B2 (en) 2017-11-09 2022-01-11 Nicira, Inc. Method and system of a dynamic high-availability mode based on current wide area network connectivity
US11016798B2 (en) * 2018-06-01 2021-05-25 The Research Foundation for the State University Multi-hypervisor virtual machines that run on multiple co-located hypervisors
US11018995B2 (en) 2019-08-27 2021-05-25 Vmware, Inc. Alleviating congestion in a virtual network deployed over public clouds for an entity
US11044190B2 (en) 2019-10-28 2021-06-22 Vmware, Inc. Managing forwarding elements at edge nodes connected to a virtual network
US11360824B2 (en) 2019-11-22 2022-06-14 Amazon Technologies, Inc. Customized partitioning of compute instances
US11394640B2 (en) 2019-12-12 2022-07-19 Vmware, Inc. Collecting and analyzing data regarding flows associated with DPI parameters
US11489783B2 (en) 2019-12-12 2022-11-01 Vmware, Inc. Performing deep packet inspection in a software defined wide area network
US11558311B2 (en) 2020-01-08 2023-01-17 Amazon Technologies, Inc. Automated local scaling of compute instances
US20210234804A1 (en) 2020-01-24 2021-07-29 Vmware, Inc. Accurate traffic steering between links through sub-path path quality metrics
US11880704B2 (en) 2020-06-24 2024-01-23 Red Hat, Inc. Nested virtual machine support for hypervisors of encrypted state virtual machines
US11245641B2 (en) 2020-07-02 2022-02-08 Vmware, Inc. Methods and apparatus for application aware hub clustering techniques for a hyper scale SD-WAN
US11748136B2 (en) * 2020-07-30 2023-09-05 Red Hat, Inc. Event notification support for nested virtual machines
US11363124B2 (en) 2020-07-30 2022-06-14 Vmware, Inc. Zero copy socket splicing
US11575591B2 (en) 2020-11-17 2023-02-07 Vmware, Inc. Autonomous distributed forwarding plane traceability based anomaly detection in application traffic for hyper-scale SD-WAN
US11575600B2 (en) 2020-11-24 2023-02-07 Vmware, Inc. Tunnel-less SD-WAN
US11929903B2 (en) 2020-12-29 2024-03-12 VMware LLC Emulating packet flows to assess network links for SD-WAN
US11792127B2 (en) 2021-01-18 2023-10-17 Vmware, Inc. Network-aware load balancing
US11979325B2 (en) 2021-01-28 2024-05-07 VMware LLC Dynamic SD-WAN hub cluster scaling with machine learning
US11509571B1 (en) 2021-05-03 2022-11-22 Vmware, Inc. Cost-based routing mesh for facilitating routing through an SD-WAN
US11729065B2 (en) 2021-05-06 2023-08-15 Vmware, Inc. Methods for application defined virtual network service among multiple transport in SD-WAN
US11489720B1 (en) 2021-06-18 2022-11-01 Vmware, Inc. Method and apparatus to evaluate resource elements and public clouds for deploying tenant deployable elements based on harvested performance metrics
US11375005B1 (en) 2021-07-24 2022-06-28 Vmware, Inc. High availability solutions for a secure access service edge application
US11943146B2 (en) 2021-10-01 2024-03-26 VMware LLC Traffic prioritization in SD-WAN
US11909815B2 (en) 2022-06-06 2024-02-20 VMware LLC Routing based on geolocation costs

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339518A (zh) * 2007-06-29 2009-01-07 英特尔公司 在分层虚拟化体系结构中插入虚拟化事件
JP2009003749A (ja) * 2007-06-22 2009-01-08 Hitachi Ltd 仮想化プログラム及び仮想計算機システム
US20090113423A1 (en) * 2007-10-31 2009-04-30 Vmware, Inc. Interchangeable Guest and Host Execution Environments

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4253145A (en) * 1978-12-26 1981-02-24 Honeywell Information Systems Inc. Hardware virtualizer for supporting recursive virtual computer systems on a host computer system
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
EP1446718A2 (en) * 2001-09-25 2004-08-18 Koninklijke Philips Electronics N.V. Software support for virtual machine interpreter (vmi) acceleration hardware
US7793286B2 (en) * 2002-12-19 2010-09-07 Intel Corporation Methods and systems to manage machine state in virtual machine operations
WO2005036806A2 (en) * 2003-10-08 2005-04-21 Unisys Corporation Scalable partition memory mapping system
US7437613B2 (en) * 2004-01-30 2008-10-14 Intel Corporation Protecting an operating system kernel from third party drivers
US7877747B2 (en) * 2004-02-20 2011-01-25 Hewlett-Packard Development Company, L.P. Flexible operating system operable as either native or as virtualized
US7421533B2 (en) * 2004-04-19 2008-09-02 Intel Corporation Method to manage memory in a platform with virtual machines
US9785485B2 (en) * 2005-07-27 2017-10-10 Intel Corporation Virtualization event processing in a layered virtualization architecture
WO2007053980A1 (en) * 2005-11-12 2007-05-18 Intel Corporation Method and apparatus to support virtualization with code patches
US7840964B2 (en) * 2005-12-30 2010-11-23 Intel Corporation Mechanism to transition control between components in a virtual machine environment
WO2007115425A1 (en) * 2006-03-30 2007-10-18 Intel Corporation Method and apparatus for supporting heterogeneous virtualization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009003749A (ja) * 2007-06-22 2009-01-08 Hitachi Ltd 仮想化プログラム及び仮想計算機システム
CN101339518A (zh) * 2007-06-29 2009-01-07 英特尔公司 在分层虚拟化体系结构中插入虚拟化事件
US20090113423A1 (en) * 2007-10-31 2009-04-30 Vmware, Inc. Interchangeable Guest and Host Execution Environments

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BRYAN FORD等: "《Microkernels Meet Recursive Virtual Machines》", 《THE PROCEEDINGS OF THE USENIX 2ND SYMPOSIUM ON OPERATING SYSTEMS DESIGN AND IMPLEMENTATION》, 31 October 1996 (1996-10-31), pages 137 - 151 *
KATHIR (NATHAN) NADARAJAH: "《Overview of the Fluke Operating System》", 《HTTP://WWW.EECG.TORONTO.EDU/~STUMM/TEACHING/ECE1759/SUMMARY_FLUKE.HTM》, 16 November 1998 (1998-11-16), pages 1 - 5 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103210373B (zh) * 2010-11-18 2016-10-12 国际商业机器公司 管理嵌套虚拟化环境
CN103210373A (zh) * 2010-11-18 2013-07-17 国际商业机器公司 管理嵌套虚拟化环境
CN104106050B (zh) * 2011-12-22 2019-01-08 英特尔公司 允许高效的嵌套虚拟化
US10467033B2 (en) 2011-12-22 2019-11-05 Intel Corporation Enabling efficient nested virtualization
WO2016206047A1 (en) * 2015-06-25 2016-12-29 Intel Corporation Techniques for reliable primary and secondary containers
CN107924321A (zh) * 2015-09-25 2018-04-17 英特尔公司 针对虚拟机退出的嵌套虚拟化
CN107924321B (zh) * 2015-09-25 2022-01-18 英特尔公司 针对虚拟机退出的嵌套虚拟化
CN106560791A (zh) * 2015-10-01 2017-04-12 阿尔特拉公司 高效虚拟i/o地址转换
CN106560791B (zh) * 2015-10-01 2020-10-27 阿尔特拉公司 高效虚拟i/o地址转换
CN105354294A (zh) * 2015-11-03 2016-02-24 杭州电子科技大学 一种嵌套式文件管理系统及方法
CN106970823A (zh) * 2017-02-24 2017-07-21 上海交通大学 高效的基于嵌套虚拟化的虚拟机安全保护方法及系统
CN106970823B (zh) * 2017-02-24 2021-02-12 上海交通大学 高效的基于嵌套虚拟化的虚拟机安全保护方法及系统
CN107273181A (zh) * 2017-05-31 2017-10-20 西安电子科技大学 一种多层嵌套虚拟化结构及其任务分配方法

Also Published As

Publication number Publication date
CN102103517B (zh) 2015-10-14
JP2011134320A (ja) 2011-07-07
EP2339462A1 (en) 2011-06-29
US20110153909A1 (en) 2011-06-23

Similar Documents

Publication Publication Date Title
CN102103517B (zh) 高效嵌套虚拟化
KR101574403B1 (ko) 결합된 가상 그래픽 장치
CN102713847B (zh) 处理器内核的监管程序隔离
JP5608243B2 (ja) 仮想化環境においてi/o処理を行う方法および装置
CN101076781A (zh) 对虚拟机监控程序的组件解除特权的系统和方法
US20170269867A1 (en) Virtual machine trigger
US9910693B2 (en) Virtual machine to host device bridging
CN103034524A (zh) 半虚拟化的虚拟gpu
EP3074866A1 (en) Apparatus and method for scheduling graphics processing unit workloads from virtual machines
EP4220394A1 (en) Chip system, method for processing virtual interrupt, and corresponding device
US20230124004A1 (en) Method for handling exception or interrupt in heterogeneous instruction set architecture and apparatus
US10140214B2 (en) Hypervisor translation bypass by host IOMMU with virtual machine migration support
US10671419B2 (en) Multiple input-output memory management units with fine grained device scopes for virtual machines
US9875131B2 (en) Virtual PCI device based hypervisor bypass using a bridge virtual machine
US11435958B2 (en) Shared memory mechanism to support fast transport of SQ/CQ pair communication between SSD device driver in virtualization environment and physical SSD
CN103793260A (zh) 一种平台虚拟化系统
CN105556473A (zh) 一种i/o任务处理的方法、设备和系统
US20180136868A1 (en) Translation bypass by host iommu for systems with virtual iommu
CN114662088A (zh) 用于提供对内核和用户空间存储器区域的访问的技术
CN115988218A (zh) 一种虚拟化视频编解码系统、电子设备和存储介质
EP2325747A2 (en) Virtual platform for prototyping system-on-chip designs
Lee et al. gShare: a centralized GPU memory management framework to enable GPU memory sharing for containers
US11106481B2 (en) Safe hyper-threading for virtual machines
US20220365729A1 (en) Shared memory mechanism to support fast transport of sq/cq pair communication between ssd device driver in virtualization environment and physical ssd
Ribiere Using virtualization to improve durability and portability of industrial applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20151014

Termination date: 20201221