用于在虚拟化环境中处理i/o操作的方法和设备的制作方法

文档序号:6596702阅读:353来源:国知局
专利名称:用于在虚拟化环境中处理i/o操作的方法和设备的制作方法
用于在虚拟化环境中处理I/o操作的方法和设备
背景技术
虚拟机体系结构可在逻辑上对物理机分区,以使得物理机的基本硬件可共享并且看起来就像是一个或多个独立操作的虚拟机。输入/输出(I/o)虚拟化(IOV)可实现一个I/o装置供多个虚拟机使用的能力。软件全装置仿真可以是I/O虚拟化的一个实例。I/O装置的全仿真可使得虚拟机能够再利用现有的装置驱动器。单根I/o虚拟化(SR-IOV)或任何其它资源分区解决方案可以是I/O虚拟化的另一个实例。将I/O装置功能(例如,与数据移动有关的I/O装置功能)分区到多个虚拟接口(VI)中(其中每个功能指派给一个虚拟机)可减少软件仿真层中的I/o开销。



附图中举例而不是限制性地示出本文描述的发明。为了简单且清楚地说明,图中示出的元件不一定按比例绘制。例如,为清楚起见,一些元件的尺寸可能相对于其它元件有所夸大。此外,在认为合适的情况下,图中重复使用附图标记以指示对应或类似的元件。图I示出包括用于控制在访客虚拟机中发起的I/O操作的服务虚拟机的计算平台的实施例。图2a示出用于存储I/O操作的I/O描述符的描述符环结构的实施例。图2b示出用于存储I/O操作的I/O描述符的描述符环结构和影子描述符环结构的实施例。图3示出供I/O装置进行直接存储器存取(DMA)的输入/输出存储器管理单元(10MMU)表的实施例。图4示出由访客虚拟机写入与I/O操作有关的I/O信息的方法的实施例。图5示出通过服务虚拟机基于I/O信息处理I/O操作的方法的实施例。图6a_6b不出通过服务虚拟机基于I/O信息处理I/O操作的方法的另一个实施例。
具体实施例方式以下描述叙述用于在虚拟化环境中处理I/O操作的技术。在以下描述中,阐述了众多具体细节,例如逻辑实现、伪代码、用于指定操作数的方式、资源分区/共享/复制实现、系统组件的类型和相互关系以及逻辑分区/集成选择,以便更加全面地了解本发明。然而,在没有这些具体细节的情况下,也可实现本发明。在其它情况下,没有详细示出控制结构、门级电路和全软件指令序列,以免使本发明晦涩难懂。本领域技术人员通过所包含的描述将能实现合适的功能性,而无需过多试验。说明书中提到“一个实施例”、“实施例”、“实例实施例”等时表示,所描述的实施例可包括特定特征、结构或特性,但不是每个实施例都一定要包括该特定特征、结构或特性。而且,这些短语不一定指相同的实施例。此外,当结合一个实施例描述特定特征、结构或特性时,认为本领域技术人员知道结合其它实施例来实现该特征、结构或特性,而不管是否有明确描述。本发明的实施例能以硬件、固件、软件或其任意组合来实现。本发明的实施例也可作为存储在机器可读介质上的指令来实现,这些指令可由一个或多个处理器读取和执行。机器可读介质可包括用于存储或传送可供机器(如计算装置)读取的形式的信息的任何机制。例如,机器可读介质可包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪速存储器装置;电、光、声或其它形式的传播信号(例如,载波、红外信号、数字信号等)及其它。图I中示出在虚拟化环境中处理I/O操作的计算平台100的实施例。计算平台100的非穷尽实例列表可包括分布式计算系统、超级计算机、计算群集、大型计算机、微型计算机、个人计算机、工作站、服务器、便携式计算机、膝上型计算机以及用于收发和处理数据的其它装置。在该实施例中,计算平台100可包括底层硬件机101,其具有一个或多个处理器 111、存储器系统121、芯片组131、I/O装置141和可能的其它组件。一个或多个处理器111可经由诸如处理器总线(图I中未示出)的一个或多个总线在通信上耦合到各个组件(例如,芯片组131)。处理器111可作为具有一个或多个处理核的集成电路(IC)来实现,这一个或多个处理核可在合适的体现结构下执行代码。存储器系统121可存储要由处理器111执行的指令和数据。存储器121的实例可包括以下半导体装置中的一种或其任意组合例如同步动态随机存取存储器(SDRAM)装置、RAMBUS动态随机存取存储器(RDRAM)装置、双倍数据速率(DDR)存储器装置、静态随机存取存储器(SRAM)及闪速存储器装置。芯片组131可在一个或多个处理器111、存储器121和诸如I/O装置141的其它组件之间提供一个或多个通信路径。I/O装置141可包括但不限于经由外围组件互连(PCI)或PCI express (PCIe)总线与主机母板连接的PCI和/或PCIe装置。I/O装置141的实例可包括通用串行总线(USB)控制器、图形适配器、音频控制器、网络接口控制器(NIC)、存储
目.-rf* o计算平台100还可包括虚拟机监视器(VMM) 102,其负责将底层硬件机与上覆虚拟机(例如,服务虚拟机103、访客虚拟机103^103^接口,以利于和管理虚拟机的多个操作系统(OS)(例如,服务虚拟机103的主机操作系统113、访客虚拟机IOS1-IOSn的访客操作系统113i-113n)共享底层物理资源。虚拟机监视器的实例可包括Xen、ESX服务器、虚拟PC、虚拟服务器、Hper-V、ParalIe> OpenVZ、Qemu 等。在一个实施例中,I/O装置141 (例如,网络卡)可分区成数个功能部分,包括支持输入/输出虚拟化(IOV)体系结构(例如,单根I0V)的控制实体(CE) Mltl和具有用于专用存取的运行时资源(例如,网络装置中的队列对)的多个虚拟功能接口(VI)Ml1-Mlnt5CE和VI的实例可包括单根I/O虚拟化体系结构或多根I/O虚拟化体系结构下的物理功能和虚拟功能。CE还可配置和管理VI功能性。在一个实施例中,多个访客虚拟机IOS1-IOSn可共享受CE 1410控制的物理资源,而每个访客虚拟机IOS1-IOSn可指派有一个或多个VI141r141n。例如,访客虚拟机103:可指派有VI 14110将明白,其它实施例可对于I/O装置141的结构实现其它技术。在一个实施例中,I/O装置141可包括一个或多个VI,而没有CE。例如,不具有分区能力的传统NIC可包括在NULL CE条件下工作的单个VI。服务虚拟机103可加载有装置模型114、CE驱动器115和VI驱动器116的代码。装置模型114可以是或者可以不是真实I/O装置141的软件仿真。CE驱动器115可管理CE1410,CE Mltl与计算平台100的初始化和运行时期间的I/O装置初始化和配置有关。取决于管理策略,VI驱动器116可以是用于管理一个或多个VI装置驱动器。在一个实施例中,基于管理策略,VI驱动器可管理分配给VI驱动器可支持的访客VM的资源,而CE驱动器可管理全局活动。每个访客虚拟机IOS1-IOSn可加载有用于管理由VMM 102呈现的虚拟装置的访客装置驱动器(例如,访客虚拟机IOS1的访客装置驱动器IW1、或访客虚拟机103n的访客装 置驱动器116n)的代码。访客装置驱动器能够或不能以与VI 141及其驱动器116兼容的模式工作。在一个实施例中,访客装置驱动器可以是传统驱动器。在一个实施例中,响应于访客虚拟机的访客操作系统(例如,访客VM IOS1的访客OS Ini)加载访客装置驱动器(例如,访客装置驱动器Iiei),服务VM 103可运行装置模型114和VI驱动器116的示例。例如,装置模型114的示例可为访客装置驱动器Iiei服务,而VI驱动器116的示例可控制指派给访客VM 103:的VI Ml1。例如,如果访客装置驱动器IW1是基于82571EB的NIC (由加利福尼亚圣克拉拉的英特尔公司制造的网络控制器)的传统驱动器,并且指派给访客VM 103J^VI Ml1是基于82571EB的NIC或与基于82571EB的NIC兼容或不兼容的其它类型的NIC,那么服务VM 103可运行代表虚拟的基于82571EB的NIC的装置模型114的示例以及用于控制VI Ml1 ( S卩,基于82571EB的NIC或与基于82571EB的NIC兼容或不兼容的其它类型的NIC)的VI驱动器116的示例。将明白,为了说明而提供图I中示出的实施例,并且其它技术可实现计算系统100的其它实施例。例如,装置模型114可与VI驱动器116或CE驱动器结合,或将它们并入在一个盒内等。它们可以按诸如OS内核的特权模式或诸如OS用户态(user land)的非特权模式运行。服务VM甚至可分成多个VM,一个VM运行CE,而另一个VM运行装置模型和VI驱动器,或任意其它组合,其中在多个VM之间具有足够通信。在一个实施例中,如果在访客VM IOS1上运行的应用(例如,应用117J指示I/O操作,那么访客装置驱动器116:可以将与I/O操作有关的I/O信息写入到指派给访客VM 103:的缓冲器(图I中未示出)中。例如,访客装置驱动器Iie1可以将I/O描述符写入到如图2a所示的环结构中,其中环结构的一个条目对应于一个I/O描述符。在一个实施例中,I/O描述符可以指示与数据分组有关的I/O操作。例如,如果访客应用Ini指示从访客存储器地址xxx-yyy读取100个分组或将100个分组写入到访客存储器地址xxx-yyy,那么访客装置驱动器Iiei可以将100个I/O描述符写入到图2a的描述符环中。访客装置驱动器Iie1可以从头指针201开始将描述符写入到描述符环中。在完成与I/O操作有关的描述符的写入之后,访客装置驱动器Iiei可以更新尾指针202。在一个实施例中,头指针201和尾指针202可存储在头寄存器和尾寄存器(图中未示出)中。在一个实施例中,描述符可以包括数据、I/O操作类型(读取或写入)、用于VIHl1读取数据或写入数据的访客存储器地址、I/O操作状态的状态以及I/O操作所需的可能的其它信息。
在一个实施例中,如果访客装置驱动器IW1不能以与指派给访客VM 103:的VIMi1兼容的模式工作,例如,如果由于Vi Mi1和访客装置驱动器Iie1支持不同的位格式和/或语义而导致Vi Mi1不能基于由访客装置驱动器Iie1写入的描述符来实现i/o操作,那么VI驱动器116可生成影子环(如图2b所示),并将遵照访客VM 103:的体系结构的描述符、头指针和尾指针转化为遵照VI Hl1的体系结构的影子描述符(S-描述符)、影子头指针(S-头指针)和影子尾指针(S-尾指针),以使得VI Hl1可基于影子描述符来实现I/O操作。将明白,为了说明而提供图2a和图2b中示出的实施例,并且其它技术可实现I/O信息的其它实施例。例如,可在不同于图2a和图2b的环结构的其它数据结构(例如,哈希表、链接表等)中写入I/O信息。又如,可针对接收和传输二者使用单个环,或者可针对接收或传输使用单独的环。IOMMU或类似的技术可允许I/O装置141通过将从描述符环或影子描述符环中的描述符检索的访客地址重新映射到主机地址而直接存取存储器系统121。图3示出IOMMU表的一个实施例。诸如访客VM 103:的访客虚拟机可具有至少一个IOMMU表,其指示遵照访 客VM的体系结构的访客存储器地址与遵照主机计算系统的体系结构的主机存储器地址之 间的对应的关系。VMM 102和服务VM 103可管理所有访客虚拟机的IOMMU表。此外,IOMMU页表可以用各种方法来建索引,例如用装置标识符(例如,PCIe系统中的总线装置功能编号)、访客VM编号或IOMMU实现中所指定的任何其它方法来建索引。将明白,不同的实施例可以利用不同的技术来进行存储器存取。在一个实施例中,如果通过例如软件解决方案使访客地址等于主机地址,那么可以不使用I0MMU。在另一个实施例中,访客装置驱动器可以与VMM 102 一起工作以通过利用类似于IOMMU表的映射表来将访客地址转化为主机地址。图4示出通过访客虚拟机来写入与I/O操作有关的I/O信息的方法的实施例。以下描述通过将访客VM 103:作为实例来进行。应了解,相同或类似的技术可适用于其它访客VM。在方框401,在访客VM IOS1上运行的应用Ini可指示I/O操作以例如将100个分组写入到访客存储器地址xxx-yyy。在方框402,访客装置驱动器Iiei可生成与I/O操作有关的I/O描述符并将其写入到访客VM 103:的描述符环(例如,如图2a或2b所示的描述符环)上,直到在方框403中将与I/O操作有关的所有描述符都写入到描述符环中。在一个实施例中,访客装置驱动器IW1可以从头指针(例如,图2a中的头指针201或图2b中的头指针2201)开始写入I/O描述符。在方框404,在将与I/O操作有关的所有描述符都写入到缓冲器之后,访客装置驱动器Iiei可更新尾指针(例如,图2a中的尾指针202或图2b中的尾指针2202)。图5示出通过服务VM 103来处理I/O操作的方法的实施例。该实施例可在访客虚拟机的访客装置驱动器能够以与VI和/或其指派给访客虚拟机的驱动器兼容的模式工作的状况下应用。例如,访客装置驱动器是基于82571EB的NIC的传统驱动器,而VI是基于82571EB的NIC或与基于82571EB的NIC兼容的其它类型的NIC,如基于82576EB的NIC的虚拟功能。以下描述通过将访客VM IOS1作为示例来进行。应了解,相同或类似的技术可适用于其它访客VM。
在方框501,访客VM 103:更新尾指针(例如,图2a的尾指针202)可触发虚拟机退出(例如,VMExit),VMM 102可捕获虚拟机退出,以使得VMM 102可以将系统的控制权从访客VM IOS1的访客OS IU1转移到服务VM 103的装置模型114。在方框502,装置模型114可响应尾指针更新而调用VI驱动器116。在方框503-506,VI驱动器116可控制指派给访客VM 103:的VI IH1以基于由访客VM 103:写入的I/O描述符(例如,图2a的I/O描述符)来实现I/O操作。具体来说,在方框503,VI驱动器116可调用VI IM1以便为I/O描述符做好准备。在一个实施例中,VI驱动器116可通过更新尾寄存器(图中未示出)来调用VI 11410在方框504,VI 11七可从访客VM 103:的描述符环(例如,图2a中不出的描述符环)中读取描述符并如I/O描述符中所描述地那样实现I/O操作,例如接收分组并将分组写入到访客存储器地址XXX。在一个实施例中,VIIH1可读取由描述符环的头指针(例如,图2a的头指针201)所指的I/O描述符。在一个实施例中,VI IM1可利用IOMMU或类似技术来实现I/O操作的直接存储器存取(DMA)。例如,VI1 IM1可从为访客VM 103:生成的IOMMU表中获得对应于访客存储器地址的主机存储器地址,并从存储器系统121直接读取分组或直接将分组写入到存储器系 统121。在另一个实施例中,如果在访客地址与主机地址之间的固定映射下,访客地址等于主机地址,那么VI IH1可在没有IOMMU表的情况下实现直接存储器存取。在方框505,VIIM1还可更新I/O描述符,例如I/O描述符中所包含的I/O操作的状态,以便指示实现了 I/0描述符。在一个实施例中,VI IM1可以或者可以不利用IOMMU表来进行I/O描述符更新。VI IM1还可更新头指针以便向前移动头指针并使其指向描述符环中的下一个I/O描述符。在方框506,VI IH1可确定是否到达尾部所指的I/O描述符。响应于未到达,VIIH1可继续在方框504和505中从描述符环读取I/O描述符并实现由I/O描述符所指示的I/O操作。响应于到达,VI IM1可在方框507通过例如向VMM 102发送中断信号而告知VMM 1021/0操作已完成。在方框508,VMM 102可通过例如将中断注入到服务VM 103而告知VI驱动器1061/0操作已完成。在方框509,VI驱动器116可保持VI IM1的状态并告知装置模型1141/0操作已完成。在方框510,装置模型114可向访客VM IU1发送虚拟中断信号,以使得访客装置驱动器Iie1可处理该事件并告知应用117:实现了 I/O操作。例如,访客装置驱动器Iie1可告知应用117i接收到数据并准备好使用。在一个实施例中,装置模型14还可更新头寄存器(图中未示出)以指示将描述符环的控制权转移回到访客装置驱动器116i。将明白,告知访客装置驱动器Iie1可以按其它方式进行,这可由装置/驱动器策略(例如在访客装置驱动器禁用装置中断的情况下做出的装置/驱动器策略)确定。将明白,为了说明而提供所描述的实施例,并且其它技术可实现其它实施例。例如,取决于不同的VMM机制,VI IM1可以用不同的方式来告知上覆机I/O操作已完成。在一个实施例中,VI Ml1可直接告知服务VM 103而不是经由VMM 102。在另一个实施例中,VI IM1可告知上覆机何时完成描述符环中所列的一个或多个而不是所有I/O操作,以使得可以及时告知访客应用完成了 I/O操作的一部分。图6a_6b示出通过服务VM 103来处理I/O操作的方法的另一个实施例。该实施例可在访客虚拟机的访客装置驱动器不能以与VI和/或其指派给访客虚拟机的驱动器兼容的模式工作的状况下应用。以下描述通过将访客VM 103:作为实例来进行。应了解,相同或类似的技术可适用于其它访客VM。在方框601,VMM可捕获在例如访客装置驱动器116访问虚拟装置(例如,装置模型114)时由访客VM IOS1引起的虚拟机退出(例如,VMExit)。在方框602,VMM 102可将系统的控制权从访客VM IOS1的访客OS IU1转移到服务VM 103的装置模型114。在方框603,装置模型114可以确定访客装置驱动器Iie1完成将与I/O操作有关的I/O描述符写入到描述符环(例如,图2b的描述符环)的事实是否触发虚拟机退出。在一个实施例中,访客VM IlS1可更新指示I/O描述符的末端的尾指针(例如,图2b的尾指针2202)。在该情况下,装置模型114可确定尾指针的更新是否触发虚拟机退出。响应于访客装置驱动器Iie1完成I/O描述符的写入的事实没有触发虚拟机退出,图6a-6b的方法可回到方框601,g卩,VMM可捕获下一个VM退出。响应于访客装置驱动器I Ie1完成I/O描述符的写入的事实触发虚拟机退出,在方框604,装置模型114可调用VI驱动器116以便将遵照访客VM 103:的体系结构的I/O描述符转化为遵照指派给访客VM 103: 的VI Hl1的体系结构的影子I/O描述符,并将影子I/O描述符存储到影子描述符环(例如,图2b中示出的影子描述符环)中。在方框605,VI驱动器116可以将遵照访客VM 103:的体系结构的尾指针转化为遵照VI Ml1的体系结构的影子尾指针。在方框606_610,VI驱动器116可控制VI IM1以基于由访客VM IOS1写入的I/O描述符来实现I/O操作。具体来说,在方框606,VI驱动器116可调用VI IM1以便为影子描述符做好准备。在一个实施例中,VI驱动器116可通过更新影子尾指针(图中未示出)来调用VI IM1。在方框607,VI IM1可从影子描述符环读取影子I/O描述符,并如影子I/0描述符中所描述地那样实现I/O操作,例如接收分组并将分组写入到访客存储器地址XXX或从访客存储器地址XXX读取分组并传送分组。在一个实施例中,VI IM1可读取由影子描述符环的影子头指针(例如,图2b的影子头指针2201)所指的I/O描述符。在一个实施例中,VI IM1可利用IOMMU或类似的技术来实现I/O操作的直接存储器存取。例如,VI1 IM1可从为访客VM 103:生成的IOMMU表中获得对应于访客存储器地址的主机存储器地址,并将所接收的分组直接写入到存储器系统121。在另一个实施例中,如果在访客地址与主机地址之间的固定映射下,访客地址等于主机地址,那么VI IH1可在没有IOMMU表的情况下实现直接存储器存取。在方框608,VI IM1还可更新影子I/O描述符,例如在影子I/O描述符中所包含的I/O操作的状态,以便指示已经实现了 I/O描述符。在一个实施例中,VI IH1可利用IOMMU表来进行I/O描述符更新。VI IH1还可更新影子头指针以便向前移动影子头指针并使其指向影子描述符环中的下一个影子I/O描述符。在方框609,VI驱动器116可将更新后的影子I/O描述符和影子头指针转化回为I/O描述符和头指针,并用新的I/O描述符和头指针来更新描述符环。在方框610,VI IH1可确定是否到达影子尾指针所指的影子I/O描述符。响应于未到达,VI IM1可继续在方框607-609中从影子描述符环读取影子I/O描述符并实现由影子I/O描述符所描述的I/O操作。响应于到达,VI IM1可在方框611通过例如向VMM 102发送中断信号而告知VMM 102I/O操作已完成。然后,VMM 102可通过例如将中断注入到服务VM 103而告知VI驱动器1061/0操作已完成。在方框612,VI驱动器116可保持VI IH1的状态并告知装置模型1141/0操作已完成。在方框613,装置模型114可以向访客装置驱动器Iiei发送虚拟中断信号,以使得访客装置驱动器Iie1可以处理该事件并告知应用In1实现了 I/O操作。例如,访客装置驱动器Iie1可告知应用In1接收到数据并准备好使用。在一个实施例中,装置模型14还可更新头寄存器(图中未示出)以指示将描述符环的控制权转移回到访客装置驱动器116i。将明白,告知访客装置驱动器Iie1可以用其它方式进行,这可由装置/驱动器策略(例如在访客装置驱动器禁用装置中断的情况下做出的装置/驱动器策略)确定。将明白,为了说明而提供所描述的实施例,并且其它技术可实现其它实施例。例如,取决于不同的VMM机制,VI IM1可以用不同的方式来告知上覆机I/O操作已完成。在一个实施例中,VI ^^可直接告知服务VM 103而不是经由MM 102。在另一个实施例中,VI IM1可告知上覆机何时完成描述符环中所列的一个或多个而不是所有I/O操作,以使得可以及时告知访客应用完成了 I/O操作的一部分。尽管上文参考实例实施例描述了本发明的某些特征,但本描述不是要按限制意义来理解。对于本发明所属领域的技术人员来说显而易见的实例实施例的各种修改以及本发明的其它实施例视为落在本发明的精神和范围内。权利要求
1.一种由服务虚拟机操作的方法,包括 通过所述服务虚拟机的装置模型来调用所述服务虚拟机的装置驱动器以便控制输入/输出(I/o)装置的一部分通过利用I/o信息来实现I/O操作,所述I/O信息与所述I/O操作有关并由访客虚拟机写入; 其中所述装置模型、所述装置驱动器和所述I/o装置的所述部分指派给所述访客虚拟机。
2.如权利要求I所述的方法,还包括如果所述I/O装置的所述部分不能与所述访客虚拟机的体系结构兼容地工作,那么 通过所述装置驱动器将遵照所述访客虚拟机的体系结构的I/o信息转化为遵照所述I/o装置的所述部分的体系结构的影子I/O信息;以及 通过所述装置驱动器将遵照所述I/o装置的所述部分的体系结构的更新后的影子I/O信息转化为遵照所述访客虚拟机的体系结构的更新后的I/o信息,其中所述I/O装置的所述部分响应于所述I/o操作的实现而更新所述更新后的I/O信息。
3.如权利要求I所述的方法,还包括 在实现所述I/o操作之后,由所述装置驱动器保持所述I/O装置的所述部分的状态。
4.如权利要求I所述的方法,还包括 由所述装置模型告知所述访客虚拟机实现了所述I/O操作。
5.如权利要求I所述的方法,其中在数据结构中从可受所述I/O装置的所述部分控制的头指针开始写入所述I/O信息。
6.如权利要求I所述的方法,其中通过所述访客虚拟机来更新指示I/O信息的末端的尾指针。
7.—种设备,包括 装置模型和装置驱动器,其中所述装置模型调用所述装置驱动器以控制输入/输出(I/O)装置的一部分通过利用I/O信息来实现I/O操作,所述I/O信息与所述I/O操作有关并由访客虚拟机写入,并且其中所述装置模型、所述装置驱动器和所述I/O装置的所述部分指派给所述访客虚拟机。
8.如权利要求7所述的设备,其中,如果所述I/O装置的所述部分不能与所述访客虚拟机的体系结构兼容地工作,那么所述装置驱动器 将遵照所述访客虚拟机的体系结构的I/O信息转化为遵照所述I/O装置的所述部分的体系结构的影子I/O信息;以及 将遵照所述I/O装置的所述部分的体系结构的更新后的影子I/O信息转化为遵照所述访客虚拟机的体系结构的更新后的I/O信息,其中所述I/O装置的所述部分响应于所述I/O操作的实现而更新所述更新后的I/O信息。
9.如权利要求7所述的设备,其中在实现所述I/O操作之后,所述装置驱动器还保持所述I/o装置的所述部分的状态。
10.如权利要求7所述的设备,其中所述装置模型还告知所述访客虚拟机实现了所述I/o操作。
11.如权利要求7所述的设备,其中在数据结构中从可受所述I/O装置的所述部分控制的头指针开始写入所述I/O信息。
12.如权利要求7所述的设备,其中通过所述访客虚拟机来更新指示I/O信息的末端的尾指针。
13.—种包括多个指令的机器可读介质,所述多个指令在执行时导致系统 通过服务虚拟机的装置模型来调用所述服务虚拟机的装置驱动器以控制输入/输出(I/O)装置的一部分通过利用I/O信息来实现I/O操作,所述I/O信息与所述I/O操作有关并由访客虚拟机写入, 其中所述装置模型、所述装置驱动器和所述I/O装置的所述部分指派给所述访客虚拟机。
14.如权利要求13所述的机器可读介质,其中,如果所述I/O装置的所述部分不能与所述访客虚拟机的体系结构兼容地工作,那么所述多个指令还导致所述系统 通过所述装置驱动器将遵照所述访客虚拟机的体系结构的I/O信息转化为遵照所述I/O装置的所述部分的体系结构的影子I/O信息;以及 通过所述装置驱动器将遵照所述I/O装置的所述部分的体系结构的更新后的影子I/O信息转化为遵照所述访客虚拟机的体系结构的更新后的I/O信息,其中所述I/O装置的所述部分响应于所述I/O操作的实现而更新所述更新后的I/O信息。
15.如权利要求13所述的机器可读介质,其中所述多个指令还导致所述系统 在实现所述I/O操作之后,通过所述装置驱动器保持所述I/O装置的所述部分的状态。
16.如权利要求13所述的机器可读介质,其中所述多个指令还导致所述系统 通过所述装置模型告知所述访客虚拟机实现了所述I/O操作。
17.如权利要求13所述的机器可读介质,其中在数据结构中从可受所述I/O装置的所述部分控制的头指针开始写入所述I/O信息。
18.如权利要求13所述的机器可读介质,其中通过所述访客虚拟机来更新指示I/O信息的末端的尾指针。
19.一种系统,包括 包括输入/输出(I/O)装置的硬件机;以及 用于将所述硬件机与多个虚拟机接口的虚拟机监视器,其中所述虚拟机包括 用于写入与输入/输出(I/O)操作有关的I/O信息的访客虚拟机;以及 包括装置模型和装置驱动器的服务虚拟机,其中所述装置模型调用所述装置驱动器以控制所述I/o装置的一部分通过利用所述I/O信息来实现所述I/O操作,并且其中所述装置模型、所述装置驱动器和所述I/o装置的所述部分指派给所述访客虚拟机。
20.如权利要求19所述的系统,其中,如果所述I/O装置的所述部分不能与所述访客虚拟机的体系结构兼容地工作,那么所述服务虚拟机的装置驱动器还 将遵照所述访客虚拟机的体系结构的I/o信息转化为遵照所述I/O装置的所述部分的体系结构的影子I/o信息;以及 将遵照所述I/o装置的至少部分的体系结构的更新后的影子I/O信息转化为遵照所述访客虚拟机的体系结构的更新后的I/o信息,其中所述I/O装置的所述部分响应于所述I/O操作的实现而更新所述更新后的I/O信息。
21.如权利要求20所述的系统,其中所述访客虚拟机从通过所述I/O装置的所述部分更新的头指针开始将所述I/O信息写入数据结构中。
22.如权利要求20所述的系统,其中所述访客虚拟机更新指示所述I/O信息的末端的尾指针。
23.如权利要求20所述的系统,其中,如果检测到更新了所述尾指针,那么所述虚拟机监视器将所述系统的控制权从所述访客虚拟机转移到所述服务虚拟机。
24.如权利要求20所述的系统,其中所述I/O装置的所述部分响应于实现了所述I/O操作而更新所述I/O信息。
25.如权利要求20所述的系统,其中在实现了所述I/O操作之后,所述装置驱动器保持所述I/O装置的所述部分的状态。
26.如权利要求20所述的系统,其中所述装置模型告知所述访客虚拟机实现了 所述I/O操作。
全文摘要
用于在虚拟化环境中处理I/O操作的机器可读介质、方法、设备和系统。在一些实施例中,系统包括包括输入/输出(I/O)装置的硬件机;以及用于将硬件机与多个虚拟机接口的虚拟机监视器。在一些实施例中,虚拟机包括用于写入与输入/输出(I/O)操作有关的I/O信息的访客虚拟机;以及包括装置模型和装置驱动器的服务虚拟机,其中装置模型调用装置驱动器以控制I/O装置的一部分利用I/O信息来实现I/O操作,并且其中装置模型、装置驱动器和I/O装置的那部分指派给访客虚拟机。
文档编号G06F9/445GK102754076SQ200980163176
公开日2012年10月24日 申请日期2009年12月24日 优先权日2009年12月24日
发明者Y·董 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1