CN101436165A - 用于iov适配器管理的系统和方法 - Google Patents

用于iov适配器管理的系统和方法 Download PDF

Info

Publication number
CN101436165A
CN101436165A CNA2008101763014A CN200810176301A CN101436165A CN 101436165 A CN101436165 A CN 101436165A CN A2008101763014 A CNA2008101763014 A CN A2008101763014A CN 200810176301 A CN200810176301 A CN 200810176301A CN 101436165 A CN101436165 A CN 101436165A
Authority
CN
China
Prior art keywords
virtual
client partitions
end points
imp
virtual functions
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
CNA2008101763014A
Other languages
English (en)
Other versions
CN101436165B (zh
Inventor
A·C·布朗
D·M·弗赖穆斯
J·A·帕夫米
R·J·雷西奥
S·M·瑟伯
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101436165A publication Critical patent/CN101436165A/zh
Application granted granted Critical
Publication of CN101436165B publication Critical patent/CN101436165B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Abstract

一种系统和方法,其提供了用于I/O虚拟化管理分区(IMP)的机制,以便在将多个虚拟功能(VF)分配给客户分区直接用于普通的I/O操作的同时,通过I/O适配器(IOA)的物理功能(PF)而控制支持I/O虚拟化(IOV)的IOA的共享的功能。系统管理器向运行在IMP和客户分区中的代码提供了设备无关的便利。IMP可包括设备专用代码,而无须系统管理器牺牲其大小、鲁棒性和可升级性。系统管理器提供了虚拟中介功能,用于共享和控制IOA的控制功能。

Description

用于IOV适配器管理的系统和方法
技术领域
本发明大体上涉及改进的数据处理系统和方法。更具体地,本发明旨在用于通过在系统管理器(hypervisor)中的虚拟中介以及通过在输入/输出虚拟化(IOV)管理分区中的管理程序而管理输入/输出虚拟化(IOV)适配器的系统和方法,所述输入/输出虚拟化(IOV)适配器诸如外围组件互连(PCI)IOV适配器。
背景技术
大多数现代计算设备使用利用了最初由Intel在20世纪90年代所创造的外围组件互连标准的一些版本或实现的输入/输出(I/O)适配器和总线。外围组件互连(PCI)标准规定用于将外围设备附加到计算机主板上的计算机总线。PCI Express或PCIe是使用已有的PCI编程概念的PCI计算机总线的实现,但是使计算机总线基于完全不同而且更快速的串行物理层通信协议。该物理层不是由可在多个设备之间共享的双向总线构成,而是由恰好连接两个设备的单一单向链路构成。
图1是示出了结合有根据PCI Express(PCIe)规范的PCI Express(PCIe)架构(fabric)拓扑的系统的示例性示图。如图1所示,系统100包括耦合到根联合体(root complex)130的主处理器(CPU)110和存储器120,根联合体130接着耦合到一个或多个PCIe端点140(在PCIe规范中,使用术语“端点”来指代支持PCIe的I/O适配器)、PCI Express-PCI桥150以及一个或多个互连交换机160。根联合体130表示将CPU/存储器连接到I/O适配器的I/O层级的根。根联合体130包括主桥(host bridge)、零个或更多根联合体集成端点、零个或多个根联合体事件收集器以及一个或多个根端口。每个根端口支持单独的I/O层级。I/O层级可包括根联合体130、零个或更多互连交换机160和/或桥150(其包括交换器或PCIe架构)以及诸如端点140、170和182-188的一个或多个端点。关于PCI和PCIe的更多信息,参见在www.pcisig.com的外围组件互连特别兴趣组(PCI-SIG)的网站上可获得的PCI和PCIe规范。
除了PCI和PCIe规范,PCI-SIG也已经定义了用于如何设计可由若干逻辑分区(LPAR)共享的I/O适配器(IOA)的输入/输出虚拟化(IOV)标准。LPAR是将计算机的处理器、存储器和存储设备划分为多个资源组,这样可将每个资源组由其自身的操作系统实例和应用独立地操作。可创建的逻辑分区的数量依赖于系统的处理器模型和可用的资源。典型地,将分区用于诸如数据库操作、客户/服务器操作的不同目的、以便隔离测试环境和生产环境等。每个分区能够与其他分区通信,如同其他分区位于单独的机器上。在支持多个LPAR的现代系统中,可在LPAR之间共享一些资源。如上文所提到的,在PCI和PCIe规范中,一种可共享的此类资源是使用I/O虚拟化机制的I/O适配器。
虽然PCI-SIG提供了用于定义如何设计可由若干LPAR共享的IOA的标准,但是此规范没有定义如何将IOA连接到主系统。而且,该标准没有规定如何管理利用了I/O虚拟化的IOA的共享的功能。这是由于PCI-SIG规范所关注的是建立用于在根联合体之下的PCIe架构的操作的标准。换句话说,PCI-SIG没有提供对用于根联合体以及其上的标准的任何定义,这是因为,将根联合体以及其上考虑作系统室(system houses)的领域。即,例如Intel平台、IBM 
Figure A200810176301D0010114826QIETU
平台和Sparc平台的每个可具有在PCI-SIG标准中未列出的不同的系统实现需求。
发明内容
说明性的实施例提供了用于使用在IOV管理分区中的功能管理,通过在系统管理器中的虚拟中介而管理输入/输出虚拟化(IOV)适配器的系统和方法。说明性的实施例的机制试图解决这样的情况,其中由多于一个的逻辑分区(LPAR)共享输入/输出(I/O)架构,以及其中每个LPAR能够潜在地与其他多个LPAR共享I/O适配器(IOA)。所示出的实施例定义了一种机制,用于在I/O虚拟化管理分区(IMP)中,当将多个虚拟功能(VF)直接分配给用于常规I/O操作的客户分区时,通过物理功能(PF)而使一个LPAR来控制支持I/O虚拟化的IOA的共享功能。
特别地,利用说明性的实施例的机制,向每个LPAR分配其自身的单独的地址空间来访问分配给它的虚拟功能(VF),以及直接接收来自被分配给它的VF的中断,使得每个LPAR的感知在于,为了常规的I/O操作的目的,其具有其自身的独立的IOA。可在多个LPAR间共享诸如PCI Express(PCIe)I/O虚拟(IOV)适配器的IOA的每个VF。通过将PF分配给I/O虚拟化管理分区(IMP),经由IOV适配器的物理功能(PF),说明性的实施例的机制提供了管理IOV适配器的共享资源的便利。此外,为了访问公共VF功能(例如,对于网络适配器而言,用于VF的网络地址)的目的,IMP表现为到PF的接口,此处将其称为适配器南侧管理。
系统管理器向运行于IMP中的代码提供了独立于IOV的便利。IMP可包括设备专用的代码,而无需系统管理器牺牲其大小、鲁棒性和可升级性。系统管理器提供了虚拟中介功能,用于共享和控制IOV适配器的控制功能。更特别地,运行于系统管理器中的代码为了充分地管理VF错误处理、VF复位和配置操作的目的而向多个VF充当虚拟中介(VI)。
在一个说明性的实施例中,提供了一种用于管理输入/输出(I/O)虚拟化的方法。该方法可包括在数据处理系统中创建一个或多个客户分区,每个客户分区具有数据处理系统的资源的相关部分,并对与数据处理系统相关联的一个或多个I/O端点来执行I/O虚拟化管理操作。I/O虚拟化管理操作可操作以配置一个或多个I/O端点的至少一个物理功能或虚拟功能。该方法可进一步包括使用与I/O虚拟化管理分区(IMP)相分离的虚拟中介来控制I/O虚拟化管理操作对一个或多个I/O端点的资源的访问。虚拟中介可防止客户分区访问未被分配给该客户分区的一个或多个I/O端点的资源。
该方法进一步包括在数据处理系统中创建I/O虚拟化管理分区(IMP)。IMP可对与数据处理系统相关联的一个或多个I/O端点来执行I/O虚拟化管理操作,借以管理一个或多个I/O端点的至少一个物理功能。不允许一个或多个客户分区来执行在至少一个物理功能之上的I/O虚拟化管理操作。
可由虚拟中介执行创建一个或多个客户分区以及创建IMP。此虚拟中介可以是与数据处理系统相关联的系统管理器。可向系统管理器提供对用于在一个或多个I/O端点中的多个物理功能和多个虚拟功能的配置空间的访问。可向IMP提供仅对用于在一个或多个I/O端点中的被分配给IMP的多个物理功能的配置空间,以及属于被分配给IMP的多个物理功能的多个虚拟功能的配置空间的访问。系统管理器可允许由客户分区来访问在一个或多个I/O端点中被分配给客户分区的多个虚拟功能的配置空间,以及可阻止由客户分区访问在一个或多个I/O端点中的被分配给客户分区的多个虚拟功能的配置空间。
该方法进一步包括从硬件管理控制台(HMC)接收输入,所述硬件管理控制台(HMC)指引I/O虚拟化管理操作的执行。来自HMC的输入可以是发起用于将新的I/O端点添加到数据处理系统的热插式操作的命令。在此情况下,执行I/O虚拟化管理操作可包括基于新的I/O端点的添加,而向一个或多个客户分区分派资源,基于新I/O端点的添加而配置IMP,以及动态地向在一个或多个客户分区中的至少一个客户分区中添加新的I/O端点的至少一个虚拟功能。
来自HMC的输入可以是发起用于将已有的I/O端点从数据处理系统移除的热插式操作的命令。在此情况下,执行I/O虚拟化管理操作可包括标识具有与将被移除的I/O端点的虚拟功能相关联的资源的一个或多个客户分区中的至少一个客户分区,以及从由至少一个客户分区的使用中移除虚拟功能以及与虚拟功能相关联的资源。执行I/O虚拟化管理操作可进一步包括从由IMP的使用中移除物理功能以及与物理功能相关联的资源,并使将被移除的I/O端点断电(power down)。
来自HMC的输入可以是动态地重新配置数据处理系统的命令。在此情况下,执行I/O虚拟化管理操作可包括接收对要添加到在一个或多个客户分区中的所选择的客户分区的I/O端点的虚拟功能的选择,设置用于在所选择的客户分区中的所选择的虚拟功能的资源,以及加载用于在所选择的客户分区中的所选择的虚拟功能的设备驱动。
来自HMC的输入可以是动态地重新配置数据处理系统的命令。在此情况下,执行I/O虚拟化管理操作可包括接收对要从在一个或多个客户分区中选择的客户分区中移除的I/O端点的虚拟功能的选择,从由所选择的客户分区的进一步使用中移除所选择的虚拟功能,以及移除用于在所选择的客户分区中的所选择的虚拟功能的资源。
来自HMC的输入可以是改变与I/O端点的所选择的虚拟功能相关联的网络地址的命令。在此情况下,执行I/O虚拟化管理操作可包括标识与所选择虚拟功能相关联的物理功能,以及向IMP发送管理请求。管理请求可包括用于改变所选择的虚拟功能的网络地址的地址信息。执行I/O虚拟化管理操作可进一步包括,基于在管理请求中的地址信息,经由与物理功能相关联的设备驱动,改变所选择的虚拟功能的网络地址。
执行I/O虚拟化管理操作可包括在虚拟中介中接收来自在一个或多个客户分区的客户分区中的设备驱动的查询虚拟功能错误状态固件调用,以及从虚拟中介向设备驱动提供标识了I/O端点的虚拟功能的错误状态的错误信息。而且,执行I/O虚拟化管理操作可包括:由设备驱动登记从虚拟中介接收的错误信息,向数据处理系统的固件发送来自设备驱动的复位虚拟功能请求,以复位具有错误状态的虚拟功能,以及在复位后,配置虚拟功能。
执行I/O虚拟化管理操作可包括,由所述虚拟中介检测客户分区失效;确定是否将执行客户分区重新引导操作;如果不要重新引导客户分区,则从一个或多个I/O端点移除与失效的客户分区相关联的虚拟功能资源,以及向自由虚拟功能资源池添加所移除的虚拟功能资源。而且,执行I/O虚拟化管理操作可包括,如果将重新引导客户分区,则在失效的客户分区重新引导之后,由虚拟中介向失效的客户分区重新分配虚拟功能资源。
进一步地,执行I/O虚拟化管理操作可包括由虚拟中介检测IMP的失效,并发起对IMP的重新引导。执行I/O虚拟化管理操作可进一步包括,暂停由关于与被分配给IMP的多个物理功能相关联的多个虚拟功能的一个或多个客户分区做出的固件调用,直到对IMP的重新引导完成,以及在完成对IMP的重新引导之后,停止对由一个或多个客户分区做出的固件调用的暂停。
在另一个说明性的实施例中,提供一种包括计算机可读介质的计算机程序产品,其具有记录在其上的计算机可读程序。当在计算设备上执行时,计算机可读程序引起计算设备来执行上文关于方法说明性的实施例而概述的多种操作及其组合。
在另一个说明性的实施例中,提供了一种装置。该装置可包括处理器和耦合到处理器的存储器。存储器可包括指令,当由处理器执行时,其引起处理器执行上文关于方法说明性的实施例而概述的多种操作及其组合。
在下文的对本发明的示例性实施例的详细描述中,描述了本发明的这些以及其他特征和优点,或者考虑到在下文的对本发明的示例性实施例的详细描述,本发明的这些以及其他特征和优点将对那些所属领域普通技术人员变得显而意见。
附图说明
当连同附图阅读时,通过参考下文对说明性的实施例的详细描述,将更好地理解本发明以及优选的使用模式和其进一步的目的和优点,其中附图包括:
图1是示出了在所属领域中周知的合并有PCIe架构拓扑的系统的示例图;
图2是示出了在所属领域中周知的系统虚拟化的示例图;
图3是示出了用于使用虚拟化层来使PCI根联合体的I/O虚拟化的第一方式的示例图;
图4是示出了用于使用本地共享PCI I/O适配器来使PCI根联合体的I/O虚拟化的第二方式的示例图;
图5是支持PCIe I/O虚拟化端点的示例图;
图6是系统结构的示例图,其中根据一个说明性的实施例而利用了支持IOV的端点或适配器;
图7是示出了根据一个说明性的实施例的一组示例性逻辑分区(LPAR)对平台固件调用的定义的示例图;
图8是示出了根据一个说明性的实施例的一组示例性硬件管理控制台(HMC)对平台的请求和响应的定义的示例图;
图9是概述了根据一个说明性的实施例的用于具有I/O虚拟化(IOV)适配器的系统的示例性“启动(bring up)”操作的流程图;
图10A-10B是根据一个示例性实施例概述了用于将IOV适配器添加到系统的示例性热插式操作的流程图;
图11是根据一个说明性的实施例概述了用于将IOV适配器从系统移除的示例性热插式操作的流程图;
图12是根据一个说明性的实施例概述了用于动态地将虚拟功能(VF)添加到逻辑分区(LPAR)的示例性操作的流程图;
图13是根据一个说明性的实施例概述了用于动态地将VF从LPAR移除的示例性操作的流程图;
图14是根据一个说明性的实施例概述了用于从由VF所招致的错误中进行错误恢复的示例性操作的流程图;
图15是根据一个说明性的实施例概述了用于改变在网络适配器上的网络地址的示例性IOA南侧管理操作的流程图;
图16是根据一个说明性的实施例概述了用于客户分区终止的示例性操作的流程图;以及
图17是根据一个说明性的实施例概述了用于IMP分区终止的示例性操作的流程图。
具体实施方式
说明性的实施例提供了用于通过在系统管理器中的虚拟中介以及通过在IOV管理分区中的管理程序而管理输入/输出虚拟化(IOV)适配器的机制。因而,为了理解说明性的实施例的机制,重要的是,首先理解在利用了系统管理器或者其他虚拟化平台的系统中可以如何实现I/O虚拟化。应当意识到,虽然关于外围组件互连快递(PCIe,Peripheral Component Interconnet Express)适配器或端点而将描述说明性的实施例,但是,本发明不限于此。而是,可以将说明性的实施例的机制实现在支持在I/O适配器内的I/O虚拟化的任何I/O架构之内。而且,应当意识到,虽然根据利用了系统管理器的实现而描述了说明性的实施例,但是,本发明不限于此。相反地,可使用除系统管理器之外的其他类型的虚拟化平台,而无论其是当前已知或稍后开发的以软件、硬件或软件和硬件的任何组合实现,这并不脱离本发明的精神和范围。
图2是示出了在所属领域中周知的系统虚拟化的示例图。系统虚拟化是对物理系统的处理器、存储器、I/O适配器、存储设备以及其他资源的划分,其中每组资源利用其自身的系统镜像实例和应用而独立操作。在此系统虚拟化中,虚拟资源由物理资源组成,以及作为物理资源的代理,物理资源例如存储器、盘设备以及具有架构化的接口/功能的其他硬件组件,虚拟资源具有相同外部接口和功能。系统虚拟化典型地利用虚拟化层,该虚拟化层创建虚拟资源并将其映射到物理资源,借以提供虚拟资源之间的隔离。典型地将虚拟化层提供为软件、固件和硬件机制之一,或者软件、固件和硬件机制的组合。
如图2中所示,典型地在虚拟化系统中,应用210与系统镜像(SI)220通信,系统镜像220是诸如一般或专用操作系统的软件组件,并利用其分配特定的虚拟和物理资源。系统镜像220与虚拟系统230相关联,其包括为运行单个SI实例所必需的物理或虚拟资源,例如,虚拟化处理器、存储器、I/O适配器、存储设备等。
通过使用虚拟系统230,系统镜像220借助于虚拟化层240访问物理系统资源250。虚拟化层240管理对SI的资源分配,以及将分配给SI的资源与来自其他SI的访问隔离。通常基于由虚拟化层240执行的资源映射,以及由虚拟化层240维护的一种或多种资源映射数据结构来执行此分配和隔离。
可使用此类虚拟化来允许对I/O操作和I/O资源的虚拟化。即,关于I/O虚拟化(IOV),可由使用虚拟化层240的超过一个的SI共享单个物理的I/O单元,可将虚拟化层240部分地或完全地以系统管理器实现。系统管理器可以是软件、固件或其类似,使用其来通过干涉例如来自SI的配置、I/O和存储器操作以及去往SI的直接存储器访问(DMA)、完成和中断操作的一个或多个而支持IOV。
图3是示出了用于使用虚拟化层来使PCI根联合体的I/O虚拟化的第一方式的示例图。如图3所示,可以是芯片、主板、刀片(blade)或其类似的一个或多个的处理器的主处理器组310,其可支持多个系统镜像320-330,应用(未示出)通过所述多个系统镜像320-330可访问诸如PCIe端点370-390的系统资源。系统镜像经由虚拟化层340、PCIe根联合体350、以及一个或多个PCIe交换机360、和/或其他PCIe架构单元而与虚拟化的资源通信。
利用图3示出的方式,可以部分地或者完全地实现为系统管理器或者其他类型的虚拟化平台的虚拟化层340会涉及所有I/O事务,以及执行所有I/O虚拟化功能。例如,虚拟化层340将来自多种SI的I/O队列的I/O请求多路复用到在PCIe端点370-390中的单个队列上。因而,虚拟化层340充当在SI 320-330和物理PCIe端点370-390之间的代理。
图4是示出了用于使用本地共享PCI I/O适配器来使PCI根联合体的I/O虚拟化的第二方式的示例图。如图4所示,可以是芯片、主板、刀片或者类似的一个或多个的处理器的主处理器组410,其可支持多个系统镜像420-430,应用(未示出)通过多个系统镜像420-430可访问诸如PCIe I/O虚拟化(IOV)端点470-490的系统资源。系统镜像420-430经由PCIe根联合体440、以及一个或多个PCIe交换机460、和/或其他PCIe架构单元而与虚拟化的资源通信。
PCIe根联合体440包括促进了与支持IOV的端点470-490的I/O操作的虚拟化的根联合体虚拟化使能者(RCVE,root complexvirtualization enabler)442,其可包括一个或多个地址转换和保护表数据结构、中断表数据结构及其类似。可由PCIe根联合体440使用地址转换和保护表数据结构,来执行在虚拟地址和实际地址之间的地址转换,用于例如虚拟化的资源、基于虚拟化的资源到多个SI的映射对虚拟资源的访问控制、以及其他虚拟化操作。例如,这些根联合体中断表数据结构是通过PCIe存储器地址空间可访问的,以及用来例如将中断映射到与多个SI相关联的恰当的中断处理程序。
如同在图3中示出的方式,也在图4的虚拟化结构中提供虚拟化层450。连同可被耦合到PCIe交换机460的不支持IOV的PCIe端点而使用虚拟化层450。即,由于这些PCIe端点不具有对I/O虚拟化(IOV)的本地(即,在端点内部)支持,以与先前上文关于图3而描述的类似方式,由PCIe端点而利用可以部分地或完全地实现为系统管理器或者其他虚拟化平台的虚拟化层450。
对于支持IOV的PCIe端点470-490,主要使用虚拟化层450来用于配置事务的目的,以及虚拟化层450不涉及存储器地址空间操作,诸如从SI发起的存储器映射输入/输出(MMIO)操作,或者从PCIe端点470-490发起的直接存储器访问(DMA)操作。相反,在SI 420-430以及端点470-490之间直接执行数据传输,而无需虚拟化层450的干涉。借助于多个RCVE 442以及支持IOV的PCIe端点470-490的内建的例如物理和虚拟功能的I/O虚拟化逻辑,使得在SI420-430和端点470-490之间的直接I/O操作成为可能。执行直接I/O操作的能力显著地增加了执行I/O操作的速度,但其需要PCIe端点470-490支持I/O虚拟化。
图5是支持PCIe I/O虚拟化(IOV)端点的示例图。如图5所示,PCIe IOV端点500包括PCIe端口510,通过PCIe端口510,可执行与PCIe架构的PCIe交换器及其类似的通信。内部路由器520对配置管理功能530和多个虚拟功能(VF)540-560提供了通信通路。配置管理功能530可以是与虚拟功能540-560相对的物理功能(PF)。作为在PCI规范中使用的术语,物理“功能(function)”是由单个配置空间所代表的逻辑组。换句话说,物理“功能”是电路逻辑,其可基于存储在存储器中的功能的相关联的配置空间的数据而被配置,使得其例如可在不可分的资源570中提供。
可使用配制管理功能530来配置虚拟功能540-560。在支持I/O虚拟化的端点内,虚拟功能是共享一个或多个例如链路的物理端点资源的功能,以及可在例如PCIe IOV端点500的可共享资源池580中用另一个功能来提供该功能。无需来自系统管理器的运行时干预,虚拟功能可以直接作为用于来自系统镜像的I/O和存储器操作的接收器,以及作为直接存储器访问(DMA)、对系统镜像(SI)的完成以及中断操作的源。
关于由PCIe端点支持的“功能”,PCIe端点可以具有许多不同类型的配置。例如,端点可支持单个物理功能(PF)、多个独立的PF、或者甚至多个相依赖的PF。在支持本地I/O虚拟化的端点中,端点支持的每个PF可与一个或多个虚拟功能(VF)相关联,其自身可依赖于与其他PF相关联的多个VF。
说明性的实施例提供了用于使用在IOV管理分区中的功能管理,通过在该系统管理器中的虚拟中介而管理诸如在图5中示出的支持IOV的PCIe端点500的输入/输出虚拟化(IOV)适配器的系统和方法。说明性的实施例的机制专注于以下情况:由多于一个逻辑分区(LPAR)共享可包括一个或多个诸如图4中的PCIe交换机460的PCIe交换机的输入/输出(I/O)架构,以及每个LPAR能够潜在地与多个其他LPAR共享例如图4中的PCIe端点470-490的I/O适配器(IOA)。说明性的实施例定义了一种机制,用于在对于普通的直接I/O操作,将多个虚拟功能(VF)分配给多个客户分区的同时,使一个LPAR(I/O虚拟化管理分区(IMP))通过物理功能(PF)来控制支持I/O虚拟化的IOA的共享功能。
特别地,利用说明性的实施例的机制,向每个LPAR分配其所自身的单独的地址空间来访问分配给它的虚拟功能(VF),以及来接收直接来自被分配给它的VF的中断,使得每个LPAR的感知在于,对于常规的I/O操作,其具有其自身的独立的IOA。随着每个LPAR得到其自身的VF,诸如PCI Express(PCIe)I/O虚拟(IOV)适配器或I/O端点的IOA的VF组可被在多个LPAR间共享。通过将PF分配给I/O虚拟化管理分区(IMP),经由IOV适配器/端点的物理功能(PF),说明性的实施例的机制为管理IOV适配器或I/O端点的共享资源提供了便利。此外,为了访问公共VF功能的目的,IMP作为到PF的接口(例如,对于网络适配器而言,用于VF的网络地址),此处将其称为适配器南侧管理。
系统管理器向运行于IMP中的代码提供了独立于IOV的便利。IMP可包括设备专用的代码,而无需系统管理器牺牲其大小、鲁棒性和可升级性。系统管理器提供了虚拟中介功能,用于共享和控制IOV适配器的控制功能。更特别地,运行于系统管理器中的代码为了充分地管理VF错误处理、VF复位和配置操作的目的而向多个VF表现为虚拟中介(VI)。
图6是系统结构的示例图,其中根据一个说明性的实施例而利用了支持IOV的端点或适配器。可以结合在图4中示出的机制而实现在图6中示出的机制。例如,可利用与在图4中的系统镜像1420相关联地提供在图6中示出的IMP603,同时,可利用与在图4中的系统镜像2430相关联地提供在图6中的客户分区604。类似地,图6的I/O架构611可包括在图4中的PCIe交换机460,IOV端点614可以类似于在图4中的PCIe端点470-490的任何一个,以及端点615和616可以或者是支持IOV的端点或者是不支持IOV的端点,诸如在图3中的端点370-390。
如图6所示,系统601包括主系统626、I/O架构611以及一个或多个I/O端点614-616,主系统626可以是例如服务器、客户计算设备或其类似的任何数据处理设备,I/O架构611可以包括一个或多个通信链路以及一个或多个交换机,I/O端点614-616在一个说明性的实施例中可以是具有作为支持IOV的端点的I/O端点614的PCIeI/O端点,而其他端点615-616可以是支持IOV或不支持IOV的端点。主系统626包括作为数据处理设备的底层硬件的平台硬件610、系统管理器625、逻辑分区(LPAR)603和604,以及对应的分区固件(PFW)623和624。虽然此处关于使用系统管理器625而描述了说明性的实施例,但是应当意识到可利用其他类型的虚拟化平台而不脱离本发明的精神和范围。
在一个说明性的实施例中,系统管理器625可以是在平台硬件610上执行的代码,以及是平台固件的部分。类似地,分区固件(PFW)623-624也可以是平台固件的一部分,但由于在逻辑上将其考虑为在LPAR内执行的LPAR的代码的一部分,因而被示出为与LPAR603和604相关联。
LPAR 603和604已经分派了在LPAR内执行的操作系统镜像或实例和资源。此外,LPAR 603和604可在LPAR内执行其他应用、软件、代码或其类似。例如,关于说明性的实施例的特定重要性,例如LPAR 603的多个LPAR之一执行引起LPAR 603来作为IOV管理分区(IMP)603而操作的代码。其他多个LPAR 604可作为客户分区而操作。虽然在图6中仅示出了一个IMP 603和一个客户分区604,应当意识到,在主系统626中可提供多于一个IMP 603和客户分区604,而不脱离说明性的实施例的精神和范围。
系统管理器625能够访问IOV端点614的配置空间619、621,以及访问I/O架构611的配置空间617。在这里所使用的术语“配置空间”指代来自存储器映射I/O(MMIO)地址空间的不相交的地址空间,分派该存储器映射I/O(MMIO)地址空间用于在存储用于系统601的特定组件的配置数据中使用。进一步地,当将多个物理功能(PF)612分配给IMP 603时,IMP的操作系统631和设备驱动605能够访问用于多个物理功能(PF)612的配置空间619,以及能够访问属于被分配给IMP 603的PF的多个虚拟功能(VF)613的配置空间621。客户分区操作系统632和设备驱动606能够直接访问被分配给它们的多个VF 613的任何配置空间621。系统管理器625充当中介,或者更具体地,充当虚拟中介(VI)来确保多个客户分区能够访问为它们正确地操作其多个VF 613所需要的配置空间,但不能访问会引起有关其他客户分区的问题的配置空间。即,客户分区604仅访问为其多个VF 613所分派的配置空间。客户分区604进一步能够访问为其多个VF 613所分配的存储器映射I/O(MMIO)空间622。
在硬件管理控制台(HMC)609上的管理应用640以及HMC 609自身,通过到IMP 603和客户分区604的远程管理命令(RMC)接口602,以及通过到系统管理器625的相同类型的接口620进行通信,硬件管理控制台(HMC)609可驻留于主系统626上或(如所示的)在单独的数据处理设备(未示出)中。管理应用640(在下文中,将其连同HMC 609而一并简单地用HMC609指代)充当指挥者(orchestrator)来控制在系统601中的多种组件的功能性,并向人们提供用户接口642来查看系统配置,以及来输入有关他们希望将何种资源分配给哪些LPAR 603-604的信息。管理应用640可提供可由用户根据下文更详细地描述而调用的许多不同功能。可选地,响应于触发了对此类功能的发起的事件或输入可自动调用这些功能,而无需用户干预。
如上所述,客户分区604可以直接地同支持IOV的端点614通信,来访问在支持IOV的端点614中的多个虚拟功能(VF)613的配置空间621。对于此类通信,系统管理器625充当虚拟中介(VI),以及防止客户分区在会影响其他客户分区的配置空间上(例如,在没有被分配给该客户分区的多个虚拟功能(VF)的配置空间上)执行配置操作。
图7是示出了根据一个说明性的实施例的一组示例性逻辑分区(LPAR)到平台固件调用(call)的定义的示例图。特别地,图7示出了可用于实现说明性的实施例的多个方面的示例性平台固件调用700,以及示出了这些调用应用于哪些分区(客户或IMP)。例如,可由分区603或604来执行这些对在图6中的相关联的平台固件623或624的调用。下文在对图9-17的多个的描述中,将给出就这些LPAR对平台固件调用700的使用的例子。将继续参考图6中的单元而做出对这些调用的描述,图6中的单元作为可执行与这些调用相关联的操作的单元的例子。
第一调用702,即读/写I/O配置空间调用702为客户分区604所使用,来访问其相关联的多个VF 613的配置空间621。系统管理器625充当用于这些调用的VI,以及防止客户分区604执行会影响其他客户分区的配置操作。也由IMP 603来使用此调用来再次利用系统管理器625配置其多个PF 619,系统管理器625充当VI来防止IMP 603访问不是其控制的域的部分的多个PF和VF的配置空间。此外,作为IOV环境中的VI,系统管理器625也需要执行由PCI SIGIOV规范所指定的动作。例如,在VF中没有复制一些配置字段,以及因而,当通过VF的配置空间621访问PF的配置空间619时,由系统管理器625提供的VI必须获得来自PF的配置空间619的这些字段。
复位PF调用704是可由IMP 603做出的多个PF专用调用之一。此调用使例如PF 621的PF复位,以及结果,也使与该PF相关联的例如VF 613的所有VF复位。当做出此调用时,IMP 603必须首先使用禁用VF调用706(在下文描述),来禁用与该PF相关联的所有VF,使该PF复位,以及继而,将所有的VF配置重新存储为它们在PF复位之前的样子。
禁用VF调用706通知平台固件来禁用对特定(多个)VF的任何进一步的MMIO操作,以及防止来自(多个)VF的直接存储器访问(DMA)和中断到达客户分区604。有大量方式来实现这一点,以确保不会发生数据完整性问题。在一个说明性的实施例中,可这样设计硬件,使得如果客户分区604尝试执行来自其VF的MMIO加载操作,则客户分区604可以接收所返回的全1的数据,如同VF不存在。当不期望全1的数据时,期待设备驱动606来检查全1的数据,以及期待设备驱动606来使用在后文描述的查询PF/VF错误状态固件调用710,来验证全1是否代表错误状态。如同在上文描述的,以及下文进一步描述的,期待在错误恢复场景中主要地使用禁用VF调用706,以及因而,禁用VF调用706可引起例如设备驱动606的VF驱动,来进入其自身的恢复。
客户分区604通过使用复位VF调用708可复位它们的多个VF613。系统管理器625充当VI并在向VF 613发出复位之前验证在复位VF调用708中指定的VF613被分配给了分区。以此方式,系统管理器625防止一个客户分区复位另一个客户分区的(多个)VF。如将在后文描述的,由于在这些分配操作中涉及系统管理器,因而系统管理器跟踪将哪些VF分配给哪些分区,以及系统管理器能够例如通过在多个系统管理器数据结构之一中存储该信息而跟踪有关用于诸如这些操作的验证操作的信息。
查询PF和VF错误状态调用710是对允许在IMP603中的例如设备驱动605的PF驱动,或者在客户分区604中的例如设备驱动606的VF驱动,来得到分别用于其PF 612和VF 613的错误状态信息的对平台固件的调用。由系统管理器从例如在平台硬件610中的硬件状态寄存器中获得此错误状态信息。可通过例如在I/O端点614的操作中的错误的出现而设置错误状态,以及可由在IMP 603中的例如设备驱动605的PF驱动、或者在客户分区604中的例如设备驱动606的VF驱动使用此错误状态来允许从错误中的恢复。通过例如复位PF 704或复位VF 706调用来从硬件中清除此错误状态信息。
为了获得用于错误恢复的平台错误数据,提供了用于加载和存储操作调用712和查询I/O架构错误信息调用714的使能的PF和VF。当查询PF和VF错误状态调用710返回错误状态信息,其向恰当的设备驱动605或606指出其相关联的PF 612或VF 613处于错误状态,设备驱动605、606可使用用于加载和存储操作调用712的使能的PF和VF,来打开到PF 612或VF 613的路径,而无须允许DMA路径打开。继而,设备驱动605、606可使用MMIO加载和存储操作来为了问题确定的目的而从I/O端点614获得状态信息。除了从MMIO加载和存储操作中得到设备专用的错误信息之外,还可以使用查询I/O架构错误信息调用714来得到针对问题确定的非设备专用的错误信息。
对所有中断使用查询中断源调用716来得到中断源,以便虚拟化中断控制器。因而,如在图7中示出的,可由客户分区604和IMP603二者使用查询中断源调用716。使用建立DMA转换调用718来建立用于将I/O地址转换为系统地址的转换机制。此地址转换机制是为I/O虚拟化所需要的。对于这些调用,系统管理器625充当VI,并防止客户分区604建立将会影响其他客户分区的地址转换。系统管理器625负责向多种分区分配资源,例如,存储器、多个处理器和I/O资源,以及之后,将该信息保持在其数据结构中用于验证访问例如特定存储器地址的该资源的分区的权限。如图7所示,由于PF通常无须针对IMP 603执行DMA操作,因而可由客户分区604而一般不是IMP 603使用建立DMA转换调用718。
最终,从LPAR的使用中添加/移除VF的调用720、和从LPAR的使用中添加/移除PF的调用722用于将在下文描述的IOA热插式和动态重新配置操作。通过定义,由于没有将多个VF分配给IMP603,以及VF的所有者控制VF的热插操作,因而由客户分区604而非IMP603使用从LPAR的使用中添加/移除VF的调用720。可由IMP 603而非客户分区604使用从LPAR的使用中添加/移除PF的调用722。不允许客户分区604来以任何方式改变PF,因而,无法使用从LPAR的使用中添加/移除PF的调用722,理由在于,允许客户分区604这样做会引起关于与PF相关联的其他客户分区相关联的多个VF的安全问题。
图8是示出了根据一个说明性的实施例的一组示例性硬件管理控制台(HMC)到平台请求和响应的定义的示例图。特别地,图8示出了示例性的HMC到平台固件请求/响应800,以及标识了期待向在系统中哪个组件做出此请求以及组件所期待的响应。例如,可通过在图6中的HMC 609,经由接口602和620的一个或多个而做出这些调用。例如,如果HMC 609做出目标为IMP 603或者客户分区604的调用,那么HMC 609可经由RMC接口602做出调用。如果HMC 609正做出目标为例如系统管理器的系统管理器625的调用,那么,可经由接口620做出调用。在后文中,将关于图9-17的多个而提供这些HMC到平台请求/响应800的使用的更详细的例子。
如图8中所示,通过使用查询I/O架构配置请求802,可就I/O架构配置而查询系统管理器625。例如,在初始系统启动(bring up)时,可由HMC 609使用此请求802来获得所有可用的I/O设备及其功能,这样可将其向用户呈现用于选择和对用户希望配置的多种LPAR的分配。
由HMC 609使用建立初始LPAR I/O配置请求804,来通知系统管理器625在HMC 609的用户已经决定配置什么。此配置不仅包括I/O配置,而且包括LPAR配置特性,诸如被分配给在系统中的多种LPAR的CPU的数量以及存储器的数量。
也可由HMC 609通知系统管理器625针对I/O适配器或端点何时加电(power up)以及何时断电。通过加电/断电IOA请求806可以实现这一点。
有若干HMC到平台的请求808-812,由HMC使用其来指示对系统的PF或VF的动态添加(即,当系统可运行的时候,以及在初始配置之后)。由HMC 609使用对PF/VF的动态添加请求808,来通知系统管理器625来期待向一个LPAR或多个LPAR添加特定资源。在意图添加此类资源之前,需要通知系统管理器625,使得其能够向这些LPAR分派资源。以此方式,当LPAR请求系统管理器625来向其LPAR添加VF或PF时,系统管理器625已经准备好分派这些资源。
一旦系统管理器625已经完成了动态添加PF/VF的请求808,可就任何添加通知IMP 603和客户分区604。动态添加PF的请求810就新的将被添加的PF可用而通知IMP 603。如同下文讨论的,当例如将I/O适配器或端点热插式地添加到系统时,这可能发生。此请求810通知IMP 603来将PF添加到其架构配置,初始化PF配置空间,加载设备驱动,以及使能PF的IOV能力。IMP 603通过在图7中的从LPAR的使用中添加/移除PF的调用722的“加入”能力而向系统管理器625发信号通知操作的完成。
动态添加VF的请求812通知客户分区604将被添加的新的VF可用。这可能发生在例如当将I/O适配器或端点热插式地添加到系统时,或者当用户希望向客户分区604添加已存在的具有未使用的多个VF的I/O适配器或端点的附加的能力时。此请求812通知客户分区604来将VF添加到其架构配置、初始化VF配置空间、加载设备驱动以及开始使用VF。客户分区604通过从LPAR的使用中添加/移除VF的调用720的“加入”能力而向系统管理器625发信号通知操作的完成。
有若干HMC到平台的请求814-818,由HMC 609使用其来指示从系统中动态移除PF或VF(即,当系统可运行的时候,以及在初始配置之后)。由HMC 609使用动态移除PF/VF的请求814,来通知系统管理器625来期待从一个LPAR或多个LPAR移除特定资源。需要事先通知系统管理器625,使得在由(多个)LPAR发信号通知移除之后,其能够取消分派用于这些LPAR的资源。一旦系统管理器625已经完成了动态移除PF/VF的请求814,可就任何移除通知IMP 603和客户分区604。
继而,由HMC 609来使用动态移除VF的请求816,来通知客户分区604需要从使用和LPAR的配置中移除VF。例如当从系统热插式地移除I/O适配器或端点时,或者例如当用户希望从客户分区604移除已经存在的I/O适配器或端点的能力时,这可能发生,使得可将其再次分配给另一个LPAR用于该LPAR的使用。此请求通知客户分区604来停止使用VF,请求对VF的复位,移除设备驱动,以及从OS的架构配置中移除VF。客户分区604通过从LPAR的使用中添加/移除VF的调用720的“移除”能力而向系统管理器625发信号通知操作的完成。
对PF的动态移除请求818通知IMP 603:PF将被移除。如上所述,在发出此请求之前,HMC 609必须从使用中的客户分区604移除与PF相关联的所有的VF。例如当从系统中热插式地移除I/O适配器或端点时,对PF的移除可能发生。此请求818通知IMP 603来停止使用PF,通过复位调用704请求对PF的复位,移除设备驱动,以及从OS的架构配置中移除PF。IMP 603通过从LPAR的使用中添加/移除PF的调用722的“移除”能力而向系统管理器625发信号通知操作的完成。
IMP 603的重要功能是提供对I/O适配器或端点的资源的安全访问,该I/O适配器或端点的资源或者在正使用与PF相关联的多个VF的多个LPAR间共享,或者该I/O适配器或端点的资源对于VF而言是唯一的,但针对由PF进行的改变,VF应该是不可访问的。网络I/O适配器或端点的此类资源的一个例子是与由多个VF共享的PF相关联的网络地址,或者对于VF而言唯一的网络地址。此处将对这些设备专用资源的管理称作对I/O适配器或端点的“南侧”管理。由I/O适配器(IOA)或端点通过HMC 609实现这一点,通过在HMC609上的安全应用(例如,登录应用或者其他认证应用)保障南侧管理请求820和所有此类管理。当IMP 603接收用于IOA的IOA南侧管理请求820时,IMP 603向设备驱动605传送用于PF的请求,以及设备驱动605通过PF接口向IOA做出设备特定请求,以便实现此请求。
通过使用查询先前命令完成和状态的请求822,来向原始请求的目标做出所有的HMC到平台请求800的当前状态。这允许HMC 609来整理一系列的HMC请求,以及通过HMC接口向用户指出先前的请求的状态。由于完成一些操作是相当慢的,以及希望能够访问此类请求的当前状态,因而可做出此类请求。
现在,当前的描述转向对上文在图7-8中示出的多种请求和调用的使用的更详细的解释。图9-17是概述了说明性的实施例机制的多种操作的流程图。例如,在图6中描述了可由例如HMC、系统管理器、IMP、客户分区、平台固件/硬件、I/O端口及其类似的多种机制实现在图9-17中概述的操作。因而,作为参与在图9-17中概述的操作的执行的说明性的实施例的机制的一个例子,适当的时候对图6的单元进行参考。
应当理解,可由计算机程序指令实现流程图示的每个方块以及在流程图示中的多个方块的组合。可向处理器或其他可编程数据处理设备提供这些计算机程序指令来产生一种机器,使得在处理器或其他可编程数据处理设备上执行的指令创建用于实现在一个或者多个流程方块中描述的功能的装置。也可在计算机可读存储器或存储介质上存储这些计算机程序指令,其能够指引处理器或其他可编程数据处理设备来以特定方式工作,使得存储在计算机可读存储器或存储介质中的指令产生包括实现在一个或者多个流程方块中描述的功能的指令装置的制品。
因而,流程图示的多个方块支持用于执行特定功能的装置的组合、用于执行特定功能的步骤的组合、以及用于执行特定功能的程序指令装置。也应当理解,通过执行特定功能或步骤的基于专用硬件的计算机系统,或者通过专用硬件和计算机指令的组合可以实现流程图示的每个方块以及在流程图示中的方块的组合。
进一步地,提供流程图来展示在说明性的实施例中执行的操作。流程图并不意味着声明或暗示关于特定操作或更具体地操作顺序的限制。可调整流程图的操作来适应特定实现,而不脱离本发明的精神和范围。
图9是概述了根据一个说明性的实施例的用于具有I/O虚拟化(IOV)适配器的系统的示例性“启动”(“bring-up”)操作的流程图。如图9所示,初始的I/O架构提出操作900开始于执行I/O架构加电(步骤902)。响应于对I/O架构的加电,系统管理器625可通过诸如探查I/O架构611的配置空间来发现耦合到I/O架构611的所有I/O适配器614-616(步骤904)、由发现操作找到的I/O适配器614-616的功能(步骤906),以及诸如通过检测IOV配置空间所发现的哪些功能是多个PF 612(步骤908)。
对于多个PF,系统管理器625可探查配置空间,例如,诸如通过读取在每个PF的配置空间中的初始VF字段,来进一步确定由每个PF所支持的多个VF的数量(步骤910)。继而,系统管理器625可确定为系统601中的I/O适配器(IOA)614-616所必需的所有系统资源,以及更具体地,在此情况下为多个VF所需要的那些资源(步骤912)。资源包括如下各项:诸如为将IOA映射到用于来自系统中的处理器的存储器映射I/O(MMIO)加载和存储操作的存储器空间所需要的I/O地址空间、所需要的请求者标识符(RID)的数量、所需要的DMA窗口空间的量、以及所需要的中断的数量及其类似。DMA窗口空间是为在根联合体(RC)中地址转换便利所需要的表空间的量。
一旦已经根据所需要的资源而做出了确定,系统管理器625可确定是否由于在系统601中的资源限制而需要限制变为使能的VF的数量(步骤914)。继而,系统管理器625可向HMC 609报告其已经从探查I/O配置空间中收集的所有信息(步骤916),诸如用于向用户展示。HMC 609可向系统管理器报告此信息,作为对例如在图8中的查询I/O架构配置HMC请求802的响应。继而,用户可向多个LPAR分配资源,或者向自由资源的可用池分配资源。所报告的信息可包括例如用户需要的信息,以便做出有关在I/O架构和端点中的内容的决策,所述内容包括诸如卖家ID、设备ID和功能数量的项。信息进一步地可包括由I/O适配器或端点所支持的PF的数量、每个PF可支持的VF的数量,诸如其可由多个PF的多个初始VF以及对由于以上文提到的方式或者类似地由系统管理器625所计算的系统限制而可支持的多个VF的数量的计算来确定。
现在,在HMC 609的用户要确定他们希望如何分派所有的系统资源。注意,也可通过运行在HMC 609中的用于向系统601的逻辑分区分配或分派系统资源的自动化脚本或者任何其他自动化机制而非人工来完成这一点。因而,在示例性的实施例中,HMC 609向用户展现了所收集的I/O架构和端点信息(步骤918),以及用户描述将如何分派这些资源(步骤920)。此分配不仅包括I/O,而且也包括诸如处理器和存储器的其他系统资源。例如,一旦用户已经做出了对资源的分配,则经由在图8中的设置初始LPAR I/O配置HMC请求804,向系统管理器625报告这一点(步骤922)。
对于多个VF,如果由用户指定的VF的数量(被分配的和自由池的二者)少于用于对应的PF的初始VF,那么系统管理器625可将PF的NumVFs配置空间参数设置为所期望的值,以及可以经由根据在PCI IOV规范中定义的VF使能位,来允许用于多个PF的I/O虚拟化(步骤924)。继而,系统管理器625可建立每个分区的资源,该资源包括MMIO寻址、DMA寻址、中断以及其他资源(步骤926),以及可创建(多个)IMP 603所必需的分区(步骤928)。
继而,系统管理器625引导用于(多个)IMP603和(多个)客户分区604的分区固件623和624,以及可向(多个)IMP 603和(多个)客户分区604传送I/O配置结构用于在那些LPAR中的OS使用(步骤930)。当向(多个)客户分区604分配(多个)VF 613时,系统管理器625开始调节(moderate)(即,开始充当虚拟中介)用于所有的从(多个)客户分区604到它们的(多个)VF 613的I/O配置访问(步骤932)。系统管理器625可引导IMP分区的(多个)OS,以及继而,可等待来自(多个)IMP 603的就已经初始化了(多个)PF 612的指示(步骤934)。例如,经由在图7中的从LPAR的使用中添加/移除PF的固件调用722的“添加”功能,(多个)IMP603可给出此指示。
一旦用于VF 613的IMP 603已经初始化了PF 612,则可加载用于VF 613的OS(步骤936)。(多个)客户分区604可加载多个设备驱动606用于它们的(多个)VF 613(步骤938)。一旦为VF 613加载了设备驱动616,则需要例如经由读/写I/O配置空间调用702来配置其VF 613(步骤940)。继而,设备驱动606可开始使用其VF 613,以及继而操作终止。
一旦系统启动且可运行,则希望能够向系统动态地添加新的I/O适配器或端点。图10A-10B是根据一个说明性实施例概述了用于将IOV适配器添加到系统的示例性热插式操作的流程图。如图10A-10B所示,热插式添加操作1000开始于在HMC控制台609的用户开始热插式应用(步骤1004),该热插式应用提供用户接口来在热插式操作期间指引用户。从热插式应用中,用户或应用可选择在I/O架构611中的空I/O槽,向该空I/O槽插入新的I/O适配器或端点,例如I/O端点614(步骤1006)。继而,用户可插入新的I/O适配器(IOA)或端点(步骤1008),以及可经由HMC609报告IOA已经被插入(步骤1010)。所属领域技术人员意识到,通过将新的IOA插入到未使用的槽中,以及使系统自动地调用热插式应用,能够自动地调取用于诸如PCIe的I/O总线的热插式应用。继而,HMC 609向系统管理器625发送消息来通过使用例如在图8中的加电/断电HMC请求806的“加电”能力来使IOA加电,以及可得到其配置信息(步骤1012),以及操作继续到在图10B中的步骤1014。
以系统管理器625在初始架构启动操作900中收集信息的类似的方式,系统管理器625可发现IOA(步骤1014),可发现在IOA上的功能(步骤1016),以及可发现哪些功能是多个PF(步骤1018)。对于多个PF,系统管理器625可发现由每个PF所支持的VF的数量(步骤1020),可确定必需的系统资源(步骤1022),确定系统资源限制(步骤1024),以及可向HMC 609报告IOA配置信息(步骤1026)。
HMC 609可向用户展现配置信息(步骤1028)。用户可指定将哪些资源分配给哪些客户分区(步骤1030),以及HMC 609可向系统管理器625报告此资源的分派(步骤1032),以及如果必要,则系统管理器625可在配置空间中设置NumVFs(步骤1034)。系统管理器625可设置每个分区的资源(步骤1036),以及可创建用于(多个)新IMP 603的(多个)分区(步骤1038)。系统管理器625可引导(多个)IMP 603,以及向这些(多个)IMP 603传送I/O配置结构(步骤1040),可引导(多个)IMP OS,以及可等待来自(多个)IMP OS的有关多个PF 612已经被初始化的信号(步骤1042)。在此点上,除了VF 613添加,IOA添加已经完成,以及系统管理器625可向HM C609就PF 612添加完成而发信号(步骤1044)。
HMC 609现在可以向(多个)客户分区604发送动态添加VF的请求812,该(多个)客户分区604将接收来自新的IOA 614的VF 613。这开始了客户分区604过程来添加(多个)VF(步骤1046)。在(多个)客户分区604中的(多个)OS可检测(多个)新的VF 613,以及可加载(多个)设备驱动606用于(多个)新的VF 613(步骤1048)。用于(多个)VF 613的(多个)设备驱动606可经由例如读/写I/O配置空间调用702来配置它们的(多个)VF 613(步骤1050),以及可以开始使用它们新被配置的(多个)VF 613。继而操作终止。
除了动态地向说明性的实施例的系统601的I/O架构611添加I/O适配器或端点,能够允许将I/O适配器或端点从I/O架构611动态地移除是有益的。图11是根据一个说明性的实施例概述了用于从系统中移除I/O适配器的示例性热插式操作的流程图。如图11所示,热插式移除操作1100开始于在HMC控制台609处的用户开始热插式应用(步骤1104)。用户可选择要被移除的I/O适配器(IOA)或诸如I/O端点614的端点(步骤1106)。
HMC 609确定哪些分区(如果有的话)包含来自将被移除的IOA的PF 612和VF 613资源(步骤1108)。HMC 609可通过例如使用动态移除PF/VF的请求814来就对资源的移除的即将来临而向系统管理器625发信号。继而,HMC 609可经由例如动态移除VF的请求816而向包含在IOA上的VF 613的每个客户分区604发送请求来从使用中移除VF(步骤1112)。(多个)客户分区604可停止使用与动态移除VF的请求816相关联的它们的(多个)VF 613(步骤1114)。
(多个)客户分区604可经由例如从LPAR使用中添加/移除的调用720的“移除”能力而向系统管理器625发信号,来从由(多个)客户分区604的使用中移除它们的(多个)VF 613(步骤1118)。系统管理器625等待所有使用中的客户分区604来就它们对它们的(多个)VF的释放而发信号(步骤1120),以及继而,可向HMC 609报告(多个)VF移除(步骤1122)。
伴随着VF移除完成,现在HMC 609可开始移除与IOA 614相关联的(多个)PF 612的过程。HMC 609例如经由动态移除PF的请求818,通过向包括在IOA 614上的PF 612的每个IMP 603发送消息,来从使用中移除(多个)PF 612来实现这一点。继而,(多个)IMP 603可根据指示而停止使用所指定的(多个)PF 612(步骤1126),以及通过从LPAR使用中添加/移除PF的调用722的“移除”能力向系统管理器625发信号来从它们的分区使用中移除PF612。继而(多个)IMP 603可从它们的分区中移除相关联的PF 612资源(步骤1128)。
系统管理器625等待所有使用中的(多个)IMP 603来就它们对(多个)PF 612的释放而发信号(步骤1130),以及可向HMC 609报告(多个)PF移除(步骤1132)。现在不再使用IOA 614,以及HMC 609可向系统管理器625发送消息,以便例如经由加电/断电IOA请求806的“断电”能力而关闭对IOA 614的电源(步骤1134)。继而,系统管理器625可使IOA 614断电,可从系统管理器625中移除IOA 614资源,以及向HMC 609报告完成(步骤1136)。HMC609可向用户报告完成(步骤1138),由此继而用户能够拔出IOA 614(如果期望的话),以及操作完成。
I/O虚拟化和多个VF的实现的一个有用的特征是当为用于负载均衡所需要时,在系统中具有足够的资源来动态地替换那些相关资源的能力。通过拥有一个可用资源池,可从可用资源中选择多个VF而用于添加到LPAR,或者通过从不需要很好地利用VF的资源的LPAR中移除VF,并向能更好的使用VF资源的LPAR中添加VF来完成这一点。图12是根据一个说明性实施例概述了用于动态地将虚拟功能(VF)添加到逻辑分区(LPAR)的示例性操作的流程图。例如当需要优化系统601的操作时,可使用在图12中概述的操作来从一个LPAR向另一个替换VF资源。
如图12所示,VF添加操作1200开始于在HMC 609处的用户开始动态重新配置(DR)应用(步骤1204)。用户可从多个VF 613的可用列表中选择进行添加,以及可指定向哪个客户分区来添加VF613(步骤1206)。HMC 609可例如经由对PF/VF的动态添加请求808而向系统管理器625展现此信息(步骤1208)。系统管理器625可设置客户分区资源,包括MMIO寻址、DMA寻址、中断及其类似(步骤1210)。
系统管理器625可通过发送所请求的操作已完成的信号而就操作已经准备好继续进行而通知HMC 609。接下来,HMC 609可请求客户分区604来经由动态添加VF的请求812而动态地添加VF 613(步骤1214)。客户分区604可检测新的VF 613,以及可加载用于新的VF 613的设备驱动606(步骤1216)。用于VF 613的设备驱动606可例如经由读/写I/O配置空间调用702而配置其VF 613(步骤1218)。最后,HMC 609可就操作的完成而通知用户,以及操作完成(步骤1220)。
图13是根据一个说明性实施例概述了用于动态地将VF从LPAR移除的示例性操作的流程图。在图13中的动态VF移除操作1300是将在系统601的多个LPAR之间的I/O资源去除的能力的其他部分。即,可使用在图13示出的操作将VF从其与一个LPAR的关联中移除,以及继而使用在上文的图12中概述出的VF添加操作而将VF添加到另一个LPAR。可根据在所示出的详细例子中通过手动用户过程而完成VF从一个分区的移除以及向另一个分区的添加,或者通过由程序确定VF未被一个分区充分利用且可被另一个分区使用而自动地完成将VF从一个分区移除以及向另一个分区添加。对于类似于存储器的资源,此类负载均衡程序在所属领域中是已知的。可使用在此处描述的本发明的对VF的动态移除和添加来将负载均衡程序进行扩展以便还均衡I/O资源。
如图13所示,VF移除操作1300开始于在HMC 609处的用户开始DR应用(步骤1304)。用户可以选择将被移除的VF,诸如VF 613(步骤1306),以及HMC 609可向例如系统管理器625发送动态移除PF/VF请求818(步骤1308)。例如,HMC 609可向客户分区604发送动态移除VF的请求816,来开始VF移除过程(步骤1310)。根据所指示的,客户分区604可接收此请求,并停止使用VF 613(步骤1312)。
客户分区604可经由例如从LPAR使用中添加/移除VF的调用720的“移除”功能而向系统管理器625发信号来从多个分区的使用中移除VF 613(步骤1314)。继而,系统管理器625可从客户分区604中移除相关联的VF613资源(步骤1316)。系统管理器625可向HMC 609报告VF的移除(步骤1318)。HMC 609可就操作的完成通知用户(步骤1320),以及操作终止。
除了动态地添加和移除I/O适配器或端点,以及能够在多个LPAR之间替换多个VF及其相关联的资源,在虚拟化系统中,能够从错误中恢复对于错误处理的鲁棒性是有用的。说明性的实施例提供了一种机制,用于能够通过取回错误信息、登记错误信息、复位和配置多个VF以及继而尝试重新启动未完成的I/O操作而从错误中恢复。如同后文描述的,在图14中概述了此操作。
图14是根据一个说明性实施例概述了用于从由VF所引发的错误中进行错误恢复的示例性操作的流程图。在图14中概述的操作使用了停止对VF的所有DMA和MMIO直到设备驱动能够意识到错误存在的已有技术,并且能够适度地恢复。然而,图14的操作利用说明性实施例的机制来补充此已有技术,来控制用于多个VF的错误恢复过程。
如图14所示,在使VF进入MMIO停止状态和DMA停止状态的错误发生之后,VF错误恢复操作1400开始。在此状态,没有来自VF的DMA操作将被完成,当处于MMIO停止状态时,将放弃MMIO存储操作,以及MMIO加载操作将得到所返回的全1的数据。错误恢复过程开始于例如设备驱动606的设备驱动接收来自MMIO加载操作返回的全1数据(步骤1404)。不期待返回全1数据的(或者不确定其是否期待)设备驱动606,例如使用用于VF 613的查询VF错误状态固件调用710,来得到VF状态信息(步骤1406)。由于在此点时VF 613处于错误状态,系统管理器625可响应就VF 613处于MMIO停止和DMA停止错误状态的查询(步骤1408)。设备驱动606可使用例如查询I/O架构错误信息固件调用714,来获得关于在I/O架构611中的错误寄存器的信息,用于后面的问题确定(步骤1410)。系统管理器625可利用错误信息响应查询(步骤1412),以及设备驱动606可将信息登记在错误日志中用于后面的分析(步骤1414)。
现在,设备驱动606准备好来复位其VF,并尝试重新启动操作。设备驱动606可使用例如复位VF固件请求708,来复位VF 613(步骤1416),以及系统管理器625可利用完成响应来响应请求(步骤1418)。继而,设备驱动606可使用例如读/写I/O配置空间调用702,来配置其VF 613(步骤1420)。设备驱动606尝试重新启动未完成的I/O操作(步骤1422),并且操作终止。
如前所述,IMP 603的重要功能是提供对IOA或端点的资源的安全访问,其中该IOA或端点的资源或者在正使用与PF相关联的多个VF的多个LPAR间共享,或者该IOA或端点的资源对于VF而言是唯一的,但针对由PF进行的改变,VF应该是不可访问的。网络I/O适配器(IOA)或端点的此类资源的一个例子是与由多个VF共享的PF相关联的网络地址,或者对于VF而言唯一的网络地址。将对这些设备专用资源的管理称作I/O适配器或端点的IOA“南侧”管理。图15是根据一个说明性实施例概述了用于改变在网络适配器上的网络地址的示例性IOA南侧管理操作的流程图。应当意识到,虽然图15具体地指示了改变在网络适配器上的网络地址,可执行类似的操作用于其他使用与PF相关联的多个VF的多个LPAR间共享、或者对VF而言是唯一的资源。
如图15所示,操作开始于在HMC控制台609处的用户开始应用来改变用于VF 613的网络地址(步骤1504)。用户可选择VF 613和地址(或者,应用可基于操作的上下文而提供地址)(步骤1506)。HMC 609可确定PF 612和控制VF 613的IMP 603,以及可向IMP 603发送IOA南侧管理请求820,并在IOA南侧管理请求820中传送VF613和地址信息(步骤1508)。IMP 603可向PF设备驱动605传送信息,以及PF设备驱动605将其继续传送到PF 612用于处理(步骤1510)。HMC 609可就命令完成而查询IMP 603,以及当完成时,可通知用户操作完成(步骤1512),并且操作终止。
应当意识到,当系统601可操作时,在系统601中的客户分区604可终止操作。有许多客户分区604可能终止的不同原因,诸如在客户分区中的软件中的不可恢复的错误,或者仅影响分配了硬件的分区的不可恢复的该硬件的错误。图16是根据一个说明性实施例概述了用于客户分区终止的示例性操作的流程图。在图16中概述的操作1600指引了一种情况,其中客户分区终止,以及或者重新引导或者永久终止。
如图16所示,当客户分区604由于某些原因操作而终止时,操作开始。能够检测客户分区何时终止的系统管理器625,其例如从分区到系统管理器的恐慌性调用中可检测到客户分区604已经终止(步骤1604),而所述恐慌性调用是由于不可恢复的软件错误,或者由于当不可恢复硬件错误时来自硬件的机器检查中断所造成的。继而,例如,根据从初始建立分区的部分中设置的用户的重新启动策略中所确定的,系统管理器625可确定客户分区604是否设置为重新引导(步骤1606)。
如果客户分区604没有设置为重新引导,则系统管理器625可从被终止的分区中移除VF资源以及将所述(多个)VF添加到系统管理器VF自由池(步骤1608)。事实上,失效的客户分区604不会在任何不久之后被重新引导,以及因而操作终止,是一种终止机制。
如果做出确定客户分区604将被重新引导(步骤1606),那么由于其将被重新引导,系统管理器625向对应的分区重新分配与在被终止的分区中的(多个)VF相关联的资源(步骤1610)。继而,操作终止。
应当意识到,在系统601的操作期间,IMP 603也可能会失效。如果IMP 603失效,则期待设置总是重新引导IMP 603,因为该IMP603充当用于在许多客户分区604中的潜在的许多VF 813的资源的控制器。图17是根据一个说明性的实施例概述了用于IMP分区终止的示例性操作1700的流程图。如图17所示,随着IMP分区终止,操作1700开始。系统管理器625能够例如从分区到系统管理器的恐慌性调用中检测IMP 603分区终止,以及发起对IMP 603的重新引导(步骤1704),其中所述恐慌性调用是由于不可恢复的软件错误,或者由于当不可恢复的硬件错误时来自硬件的机器检查中断所造成的。
除非不暂停查询中断源固件调用716和设置DMA转换固件调用718,以使得常规操作能够继续,系统管理器625可暂停对于与在被重新引导的IMP 603中的(多个)PF相关联的所有(多个)VF的任何以及所有的固件调用700,直到重新引导完成(步骤1706)。具有与在被重新启动的IMP 603中的(多个)PF相关联的(多个)VF的客户分区604继续常规操作,除非它们需要做出暂停了的固件调用,在此情况下,系统管理器625暂停固件调用直到IMP的重新引导完成(步骤1708)。系统管理器625将相同的PF资源分配给IMP 603,以及在重新引导的IMP 603检测操作是重新引导,并仔细地重新存储状态,使得不会影响VF的操作(步骤1710)。继而,操作终止。
因而,说明性的实施例提供了机制,该机制允许在单独的管理分区中而不是在系统管理器中执行用于南侧适配器专用管理的管理软件,而由系统管理器执行像配置和错误管理的适配器独立的操作。希望将I/O适配器相关的代码保持在系统管理器之外,来防止对系统管理器的性能影响。而且,希望将I/O适配器相关的代码放在单独的管理分区中,使得将由于频繁更新所造成的系统管理器代码的任何不稳定性最小化,例如,频繁更新是由于更新用于不同的适配器唯一的南侧管理软件的代码的必要性。因而,说明性实施例的机制提供了在最小化不稳定性的同时对系统管理器的更有效的操作。
应当意识到,示例性实施例可采用全部硬件的实施例、全部软件的实施例或包含硬件和软件单元两者的实施例的形式。在示例性实施例中,以软件实现说明性的实施例的机制,软件包括但不限于固件、常驻软件、微码等。
进一步地,说明性的实施例可采取从计算机可用或计算机可记录介质可访问的计算机程序产品的形式,计算机可用或计算机可记录介质提供了用于由计算机或任何指令执行系统使用或结合计算机或任何指令执行系统而使用的程序代码。为了描述的目的,计算机可用或者计算机可记录介质可以是能够包含、存储、通信、传播或传送程序的任何装置,其中所述程序用于通过指令执行系统、装置或设备使用,或者结合指令执行系统、装置或设备而使用。
介质可以是例如电的、磁的、光的、电磁的、红外的或半导体系统(或装置或设备)。计算机可记录介质的例子包括半导体或固态存储器、磁带、可移除计算机盘、随机访问存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前例子包括压缩盘-只读存储器(CD-ROM)、压缩盘-读/写(CD-R/W)和DVD。
适合于存储和/或执行程序代码的数据处理系统将包括通过系统总线直接或间接地耦合到存储器单元的至少一个处理器。存储器单元可包括在程序代码的实际执行期间被利用的本地存储器、大容量存储设备和高速缓冲存储器,其提供对至少一些程序代码的临时存储,以便降低在执行期间必须从大容量存储设备重新取得代码的次数的数量。
可以直接地或通过居间的I/O控制器而将输入/输出或I/O设备(包括但不限于键盘、显示器、指示设备等)耦合到系统。也可将网络适配器耦合到系统,来允许数据处理系统通过居间的私有或公共网络而耦合到其他数据处理系统、或远程打印机、或存储设备。调制解调器、电缆调制解调器和以太网卡仅为一些当前可用的网络适配器类型。
已经为了示出和描述的目的而展现了对本发明的描述,并且不旨在以所公开的形式穷尽或限制本发明。对所属领域技术人员,许多调整和变化是显而易见的。选择并描述实施例,以便最佳地解释本发明的原则、实际应用,以及允许所属领域其他技术人员来理解本发明,用于具有适合于特定使用预期的多种调整的多种实施例。

Claims (24)

1.一种用于在数据处理系统中管理输入/输出(I/O)虚拟化的方法,包括:
在所述数据处理系统中创建一个或多个客户分区,每个客户分区具有所述数据处理系统的资源的相关联的部分;
对与所述数据处理系统相关联的一个或多个I/O端点执行I/O虚拟化管理操作,其中所述I/O虚拟化管理操作运行以配置所述一个或多个I/O端点的至少一个物理功能或虚拟功能;以及
使用与所述I/O虚拟化管理分区(IMP)相分离的虚拟中介来控制所述I/O虚拟化管理操作对所述一个或多个I/O端点的资源的访问,其中所述虚拟中介防止客户分区访问未被分配给所述客户分区的所述一个或多个I/O端点的资源。
2.根据权利要求1所述的方法,进一步包括:
在所述数据处理系统中创建I/O虚拟化管理分区(IMP),其中所述IMP对与所述数据处理系统相关联的一个或多个I/O端点执行I/O虚拟化管理操作,借以管理所述一个或多个I/O端点的至少一个物理功能,以及其中,不允许所述一个或多个客户分区来对所述至少一个物理功能执行I/O虚拟化管理操作。
3.根据权利要求1所述的方法,其中由所述虚拟中介执行创建一个或多个客户分区以及创建所述IMP,以及其中,所述虚拟中介是与所述数据处理系统相关联的系统管理器。
4.根据权利要求3所述的方法,其中向系统管理器提供对用于在所述一个或多个I/O端点中的物理功能和虚拟功能的配置空间的访问,以及其中,向IMP仅提供对在所述一个或多个I/O端点中用于被分配给所述IMP的物理功能的配置空间和在所述一个或多个I/O端点中用于属于被分配给所述IMP的物理功能的虚拟功能的配置空间的访问。
5.根据权利要求4所述的方法,其中所述系统管理器允许由客户分区来访问在所述一个或多个I/O端点中被分配给所述客户分区的虚拟功能的配置空间,以及阻止由所述客户分区访问在所述一个或多个I/O端点中的没有被分配给所述客户分区的虚拟功能的配置空间。
6.根据权利要求2所述的方法,进一步包括:从硬件管理控制台(HMC)接收输入,所述硬件管理控制台(HMC)指引所述I/O虚拟化管理操作的执行。
7.根据权利要求6所述的方法,其中来自所述HMC的输入是发起用于将新的I/O端点添加到所述数据处理系统的热插式操作的命令,以及其中执行所述I/O虚拟化管理操作包括:
基于对所述新的I/O端点的添加,向所述一个或多个客户分区分派资源;
基于对所述新的I/O端点的所述添加,配置所述IMP;以及
向在所述一个或多个客户分区中的至少一个客户分区动态地添加所述新的I/O端点的至少一个虚拟功能。
8.根据权利要求6所述的方法,其中来自所述HMC的所述输入是发起用于从所述数据处理系统中移除已有的I/O端点的热插式操作的命令,以及其中执行所述I/O虚拟化管理操作包括:
在具有与将被移除的所述I/O端点的虚拟功能相关联的资源的所述一个或多个客户分区中标识至少一个客户分区;
从由所述至少一个客户分区的使用中移除所述虚拟功能和与所述虚拟功能相关联的资源;
从由所述IMP的使用中,移除物理功能以及与所述物理功能相关联的资源;以及
使将被移除的I/O端点断电。
9.根据权利要求6所述的方法,其中来自所述HMC的所述输入是动态地重新配置所述数据处理系统的命令,以及其中执行所述I/O虚拟化管理操作包括:
接收对要向所述一个或多个客户分区中的所选择的客户分区添加的I/O端点的虚拟功能的选择;
设置用于在所述所选择的客户分区中的所选择的虚拟功能的资源;以及
加载用于在所述所选择的客户分区中的所述所选择的虚拟功能的设备驱动。
10.根据权利要求6所述的方法,其中来自所述HMC的所述输入是动态地重新配置所述数据处理系统的命令,以及其中执行所述I/O虚拟化管理操作包括:
接收对将要从所述一个或多个客户分区中的所选择的客户分区移除的I/O端点的虚拟功能的选择;
从由所述所选择的客户分区的进一步使用中,移除所述所选择的虚拟功能;以及
移除用于在所述所选择客户分区中的所选择的虚拟功能的资源。
11.根据权利要求6所述的方法,其中来自所述HMC的所述输入是改变与I/O端点的所选择的虚拟功能相关联的网络地址的命令,以及其中执行所述I/O虚拟化管理操作包括:
标识与所述所选择的虚拟功能相关联的物理功能;
向所述IMP发送管理请求,其中所述管理请求包括用于改变所述所选择的虚拟功能的所述网络地址的地址信息;以及
基于在所述管理请求中的所述地址信息,经由与所述物理功能相关联的设备驱动,改变所述所选择的虚拟功能的所述网络地址。
12.根据权利要求1所述的方法,其中执行所述I/O虚拟化管理操作包括:
在所述虚拟中介中,接收来自在所述一个或多个客户分区的客户分区中的设备驱动的查询虚拟功能错误状态固件调用;
从所述虚拟中介中,向所述设备驱动提供标识了I/O端点的虚拟功能的错误状态的错误信息;
由所述设备驱动登记从所述虚拟中介接收的所述错误信息;
向所述数据处理系统的固件发送来自所述设备驱动的复位虚拟功能的请求,来使具有所述错误状态的所述虚拟功能复位;以及
在复位后,配置所述虚拟功能。
13.根据权利要求1所述的方法,其中执行所述I/O虚拟化管理操作包括:
由所述虚拟中介检测客户分区失效;
确定是否将执行客户分区重新引导操作;
如果不要重新引导所述客户分区,则从所述一个或多个I/O端点移除与失效的客户分区相关联的虚拟功能资源,以及向自由虚拟功能资源池添加所述所移除的虚拟功能资源;以及
如果将重新引导所述客户分区,则在所述失效的客户分区重新引导之后,由所述虚拟中介向所述失效的客户分区重新分配所述虚拟功能资源。
14.根据权利要求1所述的方法,其中执行所述I/O虚拟化管理操作包括:
检测所述IMP的失效;
由所述虚拟中介发起对所述IMP的重新引导;
由所述一个或多个客户分区暂停关于与被分配给所述IMP的物理功能相关联的虚拟功能的固件调用,直到对所述IMP的所述重新引导完成;以及
随着对所述IMP的所述重新引导的完成,由所述一个或多个客户分区停止对固件调用的暂停。
15.一种数据处理系统,包括:
处理器;以及
耦合到所述处理器的存储器,其中所述存储器包括当由所述处理器执行时,引起所述处理器执行下列操作的指令:
在所述数据处理系统中创建一个或多个客户分区,每个客户分区具有所述数据处理系统的资源的相关联的部分;
对与所述数据处理系统相关联的一个或多个I/O端点执行I/O虚拟化管理操作,其中所述I/O虚拟化管理操作运行以配置所述一个或多个I/O端点的至少一个物理功能或虚拟功能;以及
使用与所述IMP相分离的虚拟中介来控制所述I/O虚拟化管理操作对所述一个或多个I/O端点的资源的访问,其中所述虚拟中介防止客户分区访问未被分配给所述客户分区的所述一个或多个I/O端点的资源。
16.根据权利要求15所述的系统,其中所述指令进一步引起所述处理器执行下列操作:
在所述数据处理系统中创建I/O虚拟化管理分区(IMP),其中所述IMP对与所述数据处理系统相关联的一个或多个I/O端点执行I/O虚拟化管理操作,借以管理所述一个或多个I/O端点的至少一个物理功能,以及其中,不允许所述一个或多个客户分区对所述至少一个物理功能执行I/O虚拟化管理操作。
17.根据权利要求15所述的系统,其中由所述虚拟中介执行创建一个或多个客户分区,以及创建所述IMP,以及其中,虚拟中介是与所述数据处理系统相关联的系统管理器。
18.根据权利要求17所述的系统,其中向所述系统管理器提供对用于在所述一个或多个I/O端点中的物理功能和虚拟功能的配置空间的访问,以及其中,向IMP提供仅对在所述一个或多个I/O端点中用于被分配给所述IMP的物理功能的配置空间和在所述一个或多个I/O端点中用于属于被分配给所述IMP的物理功能的虚拟功能的配置空间的访问。
19.根据权利要求18所述的系统,其中所述系统管理器允许由客户分区来访问在所述一个或多个I/O端点中被分配给所述客户分区的虚拟功能的配置空间,以及阻止由所述客户分区访问在所述一个或多个I/O端点中的没有被分配给所述客户分区的虚拟功能的配置空间。
20.根据权利要求16所述的系统,其中所述指令进一步引起所述处理器来从硬件管理控制台(HMC)接收输入,所述硬件管理控制台(HMC)指引所述I/O虚拟化管理操作的执行。
21.根据权利要求20所述的系统,其中来自所述HMC的所述输入是发起用于将新的I/O端点添加到所述数据处理系统的热插式操作的命令,以及其中所述指令引起所述处理器通过下列操作执行所述I/O虚拟化管理操作:
基于对所述新的I/O端点的添加,向所述一个或多个客户分区分派资源;
基于对所述新的I/O端点的添加,配置所述IMP;以及
向在所述一个或多个客户分区中的至少一个客户分区动态地添加所述新的I/O端点的至少一个虚拟功能。
22.根据权利要求15所述的系统,其中所述指令引起所述处理器通过下列操作执行所述I/O虚拟化管理操作:
在所述虚拟中介中,从在所述一个或多个客户分区的客户分区中的设备驱动中接收查询虚拟功能错误状态固件调用;
从所述虚拟中介向所述设备驱动提供标识了I/O端点的虚拟功能的错误状态的错误信息;
由所述设备驱动登记从所述虚拟中介接收的所述错误信息;
向所述数据处理系统的固件发送来自所述设备驱动的复位虚拟功能的请求,以使具有所述错误状态的所述虚拟功能复位;以及
在复位后,配置所述虚拟功能。
23.根据权利要求15所述的系统,其中所述指令引起所述处理器通过下列操作来执行所述I/O虚拟化管理操作:
由所述虚拟中介检测客户分区失效;
确定是否要执行客户分区重新引导操作;
如果不用重新引导所述客户分区,则从所述一个或多个I/O端点中移除与失效的客户分区相关联的虚拟功能的资源,并向自由虚拟功能资源池添加所述被移除的虚拟功能资源;以及
如果将重新引导所述客户分区,则在所述失效的客户分区重新引导之后,由所述虚拟中介向所述失效的客户分区重新分配所述虚拟功能资源。
24.根据权利要求15所述的系统,其中所述指令引起所述处理器通过下列操作执行所述I/O虚拟化管理操作:
检测所述IMP的失效;
由所述虚拟中介发起对所述IMP的重新引导;
由所述一个或多个客户分区暂停关于与被分配给所述IMP的物理功能相关联的虚拟功能的固件调用,直到对所述IMP的所述重新引导完成;以及
随着对所述IMP的所述重新引导的完成,由所述一个或多个客户分区停止对固件调用的暂停。
CN2008101763014A 2007-11-15 2008-11-14 用于iov适配器管理的系统和方法 Active CN101436165B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/940,357 US8141092B2 (en) 2007-11-15 2007-11-15 Management of an IOV adapter through a virtual intermediary in a hypervisor with functional management in an IOV management partition
US11/940,357 2007-11-15

Publications (2)

Publication Number Publication Date
CN101436165A true CN101436165A (zh) 2009-05-20
CN101436165B CN101436165B (zh) 2012-06-27

Family

ID=40643336

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101763014A Active CN101436165B (zh) 2007-11-15 2008-11-14 用于iov适配器管理的系统和方法

Country Status (3)

Country Link
US (1) US8141092B2 (zh)
JP (1) JP5305848B2 (zh)
CN (1) CN101436165B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014026374A1 (zh) * 2012-08-17 2014-02-20 华为技术有限公司 服务器系统、管理方法及设备
CN103609077A (zh) * 2013-06-18 2014-02-26 华为技术有限公司 用于数据传输的方法、装置和系统以及物理网卡
CN104657305A (zh) * 2013-11-22 2015-05-27 国际商业机器公司 用于实现支持sriov的sas适配器的动态虚拟化的方法和系统
CN103853676B (zh) * 2014-03-28 2016-08-17 苏州科达科技股份有限公司 基于PCIe总线的信道分配、释放、数据传输方法和系统
CN106502941A (zh) * 2016-11-25 2017-03-15 北京兆芯电子科技有限公司 输入输出扩展器、计算机系统以及其配置方法
CN107148623A (zh) * 2014-10-24 2017-09-08 思科技术公司 Pcie设备和功能与主机阵列的动态连接
WO2020259269A1 (zh) * 2019-06-25 2020-12-30 华为技术有限公司 转发报文的方法、中间设备和计算机设备
WO2023093843A1 (zh) * 2021-11-29 2023-06-01 华为技术有限公司 一种配置装置、调度装置及配置方法和调度方法

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8141093B2 (en) * 2007-11-15 2012-03-20 International Business Machines Corporation Management of an IOV adapter through a virtual intermediary in an IOV management partition
US8141094B2 (en) 2007-12-03 2012-03-20 International Business Machines Corporation Distribution of resources for I/O virtualized (IOV) adapters and management of the adapters through an IOV management partition via user selection of compatible virtual functions
JP5119902B2 (ja) * 2007-12-19 2013-01-16 富士通セミコンダクター株式会社 動的再構成支援プログラム、動的再構成支援方法、動的再構成回路、動的再構成支援装置および動的再構成システム
US8359415B2 (en) * 2008-05-05 2013-01-22 International Business Machines Corporation Multi-root I/O virtualization using separate management facilities of multiple logical partitions
JP5645014B2 (ja) * 2008-05-28 2014-12-24 日本電気株式会社 I/o接続システム、方法及びプログラム
US8117346B2 (en) 2008-10-03 2012-02-14 Microsoft Corporation Configuration space virtualization
US7913024B2 (en) * 2008-12-09 2011-03-22 International Business Machines Corporation Differentiating traffic types in a multi-root PCI express environment
US8144582B2 (en) * 2008-12-30 2012-03-27 International Business Machines Corporation Differentiating blade destination and traffic types in a multi-root PCIe environment
US8601128B2 (en) * 2009-12-10 2013-12-03 Hewlett-Packard Development Company, L.P. Managing hardware resources for soft partitioning
US8595362B2 (en) * 2009-12-10 2013-11-26 Hewlett-Packard Development Company, L.P. Managing hardware resources for soft partitioning
US9389895B2 (en) 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
US8473947B2 (en) * 2010-01-18 2013-06-25 Vmware, Inc. Method for configuring a physical adapter with virtual function (VF) and physical function (PF) for controlling address translation between virtual disks and physical storage regions
US8239655B2 (en) * 2010-01-18 2012-08-07 Vmware, Inc. Virtual target addressing during direct data access via VF of IO storage adapter
US8719817B2 (en) * 2010-03-25 2014-05-06 Vmware, Inc. Virtualization intermediary/virtual machine guest operating system collaborative SCSI path management
US8316169B2 (en) 2010-04-12 2012-11-20 International Business Machines Corporation Physical to hierarchical bus translation
US8327055B2 (en) 2010-04-12 2012-12-04 International Business Machines Corporation Translating a requester identifier to a chip identifier
US8364879B2 (en) 2010-04-12 2013-01-29 International Business Machines Corporation Hierarchical to physical memory mapped input/output translation
US8606984B2 (en) 2010-04-12 2013-12-10 International Busines Machines Corporation Hierarchical to physical bus translation
US8429323B2 (en) 2010-05-05 2013-04-23 International Business Machines Corporation Memory mapped input/output bus address range translation
US8650349B2 (en) 2010-05-26 2014-02-11 International Business Machines Corporation Memory mapped input/output bus address range translation for virtual bridges
US8505032B2 (en) * 2010-06-23 2013-08-06 International Business Machines Corporation Operating system notification of actions to be taken responsive to adapter events
US8271710B2 (en) 2010-06-24 2012-09-18 International Business Machines Corporation Moving ownership of a device between compute elements
US8949499B2 (en) 2010-06-24 2015-02-03 International Business Machines Corporation Using a PCI standard hot plug controller to modify the hierarchy of a distributed switch
US9235585B1 (en) 2010-06-30 2016-01-12 Emc Corporation Dynamic prioritized recovery
US9697086B2 (en) * 2010-06-30 2017-07-04 EMC IP Holding Company LLC Data access during data recovery
US9367561B1 (en) 2010-06-30 2016-06-14 Emc Corporation Prioritized backup segmenting
US8561064B2 (en) 2010-10-26 2013-10-15 International Business Machines Corporation Retaining ownership of a virtual function while an adapter is replaced
US9135044B2 (en) * 2010-10-26 2015-09-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Virtual function boot in multi-root I/O virtualization environments to enable multiple servers to share virtual functions of a storage adapter through a MR-IOV switch
US8561065B2 (en) * 2010-11-15 2013-10-15 International Business Machines Corporation Virtualization of vendor specific network interfaces of self-virtualizing input/output device virtual functions
US8839240B2 (en) 2010-11-29 2014-09-16 International Business Machines Corporation Accessing vendor-specific drivers for configuring and accessing a self-virtualizing input/output device
US8561066B2 (en) * 2010-12-08 2013-10-15 International Business Machines Corporation Simplified DMA mappings for self-virtualizing input/output device virtual functions
US8726276B2 (en) * 2011-01-26 2014-05-13 International Business Machines Corporation Resetting a virtual function that is hosted by an input/output adapter
US9116725B1 (en) * 2011-03-15 2015-08-25 Symantec Corporation Systems and methods for using virtualization of operating-system-level components to facilitate software testing
JP5585844B2 (ja) * 2011-03-25 2014-09-10 株式会社日立製作所 仮想計算機の制御方法及び計算機
US9218195B2 (en) 2011-05-17 2015-12-22 International Business Machines Corporation Vendor-independent resource configuration interface for self-virtualizing input/output device
US8893267B1 (en) * 2011-08-17 2014-11-18 Applied Micro Circuits Corporation System and method for partitioning resources in a system-on-chip (SoC)
WO2013138977A1 (en) * 2012-03-19 2013-09-26 Intel Corporation Techniques for packet management in an input/output virtualization system
US8856788B2 (en) * 2012-09-05 2014-10-07 Red Hat Israel, Ltd. Activity based device removal management
US9047208B1 (en) * 2012-12-10 2015-06-02 Qlogic, Corporation Method and system of configuring virtual function in peripheral devices
US9298658B2 (en) * 2013-02-26 2016-03-29 Avago Technologies General Ip (Singapore) Pte. Ltd. Using PCI-E extended configuration space to send IOCTLS to a PCI-E adapter
US9015353B2 (en) * 2013-03-14 2015-04-21 DSSD, Inc. Method and system for hybrid direct input/output (I/O) with a storage device
US9218310B2 (en) * 2013-03-15 2015-12-22 Google Inc. Shared input/output (I/O) unit
US9720775B2 (en) 2013-06-12 2017-08-01 International Business Machines Corporation Implementing concurrent adapter firmware update for an SRIOV adapter in a virtualized system
US9323620B2 (en) 2013-06-12 2016-04-26 International Business Machines Corporation Implementing shared adapter configuration updates concurrent with maintenance actions in a virtualized system
US9304849B2 (en) 2013-06-12 2016-04-05 International Business Machines Corporation Implementing enhanced error handling of a shared adapter in a virtualized system
US9111046B2 (en) 2013-06-12 2015-08-18 International Business Machines Corporation Implementing capacity and user-based resource allocation for a shared adapter in a virtualized system
US9400704B2 (en) 2013-06-12 2016-07-26 Globalfoundries Inc. Implementing distributed debug data collection and analysis for a shared adapter in a virtualized system
US9317317B2 (en) * 2013-06-12 2016-04-19 International Business Machines Corporation Implementing concurrent device driver maintenance and recovery for an SRIOV adapter in a virtualized system
JP6194651B2 (ja) * 2013-06-17 2017-09-13 富士ゼロックス株式会社 情報処理装置
US9043501B2 (en) 2013-07-25 2015-05-26 International Business Machines Corporation Input/output monitoring mechanism
US11018988B2 (en) 2013-08-26 2021-05-25 Vmware, Inc. Translating high level requirements policies to distributed configurations
US9454394B2 (en) 2013-11-22 2016-09-27 Red Hat Israel, Ltd. Hypervisor dynamically assigned input/output resources for virtual devices
US10089129B2 (en) * 2014-06-30 2018-10-02 International Business Machines Corporation Supporting flexible deployment and migration of virtual servers via unique function identifiers
EP3159802B1 (en) 2014-07-15 2018-05-23 Huawei Technologies Co. Ltd. Sharing method and device for pcie i/o device and interconnection system
US9569242B2 (en) * 2014-07-16 2017-02-14 International Business Machines Corporation Implementing dynamic adjustment of I/O bandwidth for virtual machines using a single root I/O virtualization (SRIOV) adapter
CN104506389A (zh) * 2015-01-29 2015-04-08 浪潮电子信息产业股份有限公司 一种高密度服务器整机稳定性测试方法
KR102398213B1 (ko) 2015-03-09 2022-05-17 삼성전자주식회사 저장 장치, 그것을 포함하는 호스트 시스템, 및 그것의 맵 테이블 업데이트 방법
US9858102B2 (en) * 2015-05-21 2018-01-02 Dell Products, L.P. Data path failover method for SR-IOV capable ethernet controller
US10067900B2 (en) 2015-08-25 2018-09-04 Oracle International Corporation Virtualized I/O device sharing within a distributed processing node system
US9535740B1 (en) * 2015-08-26 2017-01-03 International Business Machines Corporation Implementing dynamic adjustment of resources allocated to SRIOV remote direct memory access adapter (RDMA) virtual functions based on usage patterns
US10042720B2 (en) 2016-02-22 2018-08-07 International Business Machines Corporation Live partition mobility with I/O migration
US10002018B2 (en) 2016-02-23 2018-06-19 International Business Machines Corporation Migrating single root I/O virtualization adapter configurations in a computing system
US10042723B2 (en) 2016-02-23 2018-08-07 International Business Machines Corporation Failover of a virtual function exposed by an SR-IOV adapter
US10025584B2 (en) 2016-02-29 2018-07-17 International Business Machines Corporation Firmware management of SR-IOV adapters
CN107515775B (zh) * 2016-06-15 2021-11-19 华为技术有限公司 一种数据传输方法及装置
US10127068B2 (en) * 2016-06-30 2018-11-13 Amazon Technologies, Inc. Performance variability reduction using an opportunistic hypervisor
US9715469B1 (en) 2016-10-21 2017-07-25 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9785451B1 (en) 2016-10-21 2017-10-10 International Business Machines Corporation Migrating MMIO from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US9720863B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating MMIO from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9720862B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US9785519B1 (en) * 2017-02-16 2017-10-10 Red Hat Israel, Ltd. Driver switch for device error recovery for assigned devices
US10853299B2 (en) * 2017-09-15 2020-12-01 Dell Products L.P. Hot-plugged PCIe device configuration system
US11068203B2 (en) * 2018-08-01 2021-07-20 Micron Technology, Inc. NVMe direct virtualization with configurable storage
US20230205287A1 (en) * 2021-12-28 2023-06-29 Ati Technologies Ulc Processing unit reset by a virtual function

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6247080B1 (en) 1997-05-13 2001-06-12 Micron Electronics, Inc. Method for the hot add of devices
US5941972A (en) 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
US20030005068A1 (en) 2000-12-28 2003-01-02 Nickel Ronald H. System and method for creating a virtual supercomputer using computers working collaboratively in parallel and uses for the same
US6842857B2 (en) 2001-04-12 2005-01-11 International Business Machines Corporation Method and apparatus to concurrently boot multiple processors in a non-uniform-memory-access machine
US6880002B2 (en) 2001-09-05 2005-04-12 Surgient, Inc. Virtualized logical server cloud providing non-deterministic allocation of logical attributes of logical servers to physical resources
US7565398B2 (en) * 2002-06-27 2009-07-21 International Business Machines Corporation Procedure for dynamic reconfiguration of resources of logical partitions
US7836211B2 (en) 2003-01-21 2010-11-16 Emulex Design And Manufacturing Corporation Shared input/output load-store architecture
US20040158834A1 (en) * 2003-02-06 2004-08-12 International Business Machines Corporation Apparatus and method for dynamically allocating resources of a dead logical partition
US7073002B2 (en) 2003-03-13 2006-07-04 International Business Machines Corporation Apparatus and method for controlling resource transfers using locks in a logically partitioned computer system
US7085862B2 (en) * 2003-03-13 2006-08-01 International Business Machines Corporation Apparatus and method for controlling resource transfers in a logically partitioned computer system by placing a resource in a power on reset state when transferring the resource to a logical partition
US7134052B2 (en) * 2003-05-15 2006-11-07 International Business Machines Corporation Autonomic recovery from hardware errors in an input/output fabric
JP2004349626A (ja) * 2003-05-26 2004-12-09 Toshiba Corp 冷却装置および冷却装置を搭載した電子機器
US8301809B2 (en) 2003-07-02 2012-10-30 Infortrend Technology, Inc. Storage virtualization computer system and external controller thereof
US7237139B2 (en) * 2003-08-07 2007-06-26 International Business Machines Corporation Services heuristics for computer adapter placement in logical partitioning operations
US7502842B2 (en) * 2003-09-25 2009-03-10 International Business Machines Corporation Auto-configuration of an internal VLAN network interface
US7254652B2 (en) * 2003-09-30 2007-08-07 International Business Machines Corporation Autonomic configuration of port speeds of components connected to an interconnection cable
US7171417B2 (en) * 2003-09-30 2007-01-30 International Business Machines Corporation Method and apparatus for improving performance and scalability of an object manager
US7111102B2 (en) 2003-10-06 2006-09-19 Cisco Technology, Inc. Port adapter for high-bandwidth bus
US20070067366A1 (en) * 2003-10-08 2007-03-22 Landis John A Scalable partition memory mapping system
US7984108B2 (en) * 2003-10-08 2011-07-19 Unisys Corporation Computer system para-virtualization using a hypervisor that is implemented in a partition of the host system
US20070061441A1 (en) 2003-10-08 2007-03-15 Landis John A Para-virtualized computer system with I/0 server partitions that map physical host hardware for access by guest partitions
US7234037B2 (en) 2003-11-25 2007-06-19 International Business Machines Corporation Memory mapped Input/Output operations
US7660322B2 (en) 2003-12-11 2010-02-09 International Business Machines Corporation Shared adapter
US7487258B2 (en) 2004-01-30 2009-02-03 International Business Machines Corporation Arbitration in a computing utility system
US8782024B2 (en) 2004-02-12 2014-07-15 International Business Machines Corporation Managing the sharing of logical resources among separate partitions of a logically partitioned computer system
US7530071B2 (en) * 2004-04-22 2009-05-05 International Business Machines Corporation Facilitating access to input/output resources via an I/O partition shared by multiple consumer partitions
US20050246453A1 (en) 2004-04-30 2005-11-03 Microsoft Corporation Providing direct access to hardware from a virtual environment
US7249208B2 (en) 2004-05-27 2007-07-24 International Business Machines Corporation System and method for extending the cross-memory descriptor to describe another partition's memory
US7240177B2 (en) 2004-05-27 2007-07-03 International Business Machines Corporation System and method for improving performance of dynamic memory removals by reducing file cache size
IL163314A (en) 2004-08-02 2010-06-16 Lsi Technologies Israel Ltd Booting from a storage area network
JP2006113767A (ja) 2004-10-14 2006-04-27 Sony Corp 情報処理システム、および、情報処理方法、並びに、プログラム
CN1773473A (zh) * 2004-11-10 2006-05-17 张冉 利用软件虚拟技术结合硬件实现电子音乐信号输入设备的方法
US20060123111A1 (en) * 2004-12-02 2006-06-08 Frank Dea Method, system and computer program product for transitioning network traffic between logical partitions in one or more data processing systems
JP4733399B2 (ja) 2005-01-28 2011-07-27 株式会社日立製作所 計算機システム、計算機、ストレージ装置及び管理端末
US7694047B1 (en) 2005-02-17 2010-04-06 Qlogic, Corporation Method and system for sharing input/output devices
US20060195663A1 (en) 2005-02-25 2006-08-31 International Business Machines Corporation Virtualized I/O adapter for a multi-processor data processing system
US7543305B2 (en) * 2005-03-24 2009-06-02 International Business Machines Corporation Selective event registration
US20060236063A1 (en) 2005-03-30 2006-10-19 Neteffect, Inc. RDMA enabled I/O adapter performing efficient memory management
US7415034B2 (en) 2005-04-04 2008-08-19 Sun Microsystems, Inc. Virtualized partitionable shared network interface
US20060250945A1 (en) * 2005-04-07 2006-11-09 International Business Machines Corporation Method and apparatus for automatically activating standby shared Ethernet adapter in a Virtual I/O server of a logically-partitioned data processing system
US7620741B2 (en) 2005-04-22 2009-11-17 Sun Microsystems, Inc. Proxy-based device sharing
US8223745B2 (en) 2005-04-22 2012-07-17 Oracle America, Inc. Adding packet routing information without ECRC recalculation
US7949766B2 (en) 2005-06-22 2011-05-24 Cisco Technology, Inc. Offload stack for network, block and file input and output
US8521912B2 (en) 2006-01-12 2013-08-27 Broadcom Corporation Method and system for direct device access
US8230153B2 (en) 2006-01-20 2012-07-24 Broadcom Corporation Method and system for HBA assisted storage virtualization
US20070192518A1 (en) 2006-02-14 2007-08-16 Aarohi Communications, Inc., A California Corporation Apparatus for performing I/O sharing & virtualization
US7613749B2 (en) 2006-04-12 2009-11-03 International Business Machines Corporation System and method for application fault tolerance and recovery using topologically remotely located computing devices
US8677034B2 (en) * 2006-04-28 2014-03-18 Hewlett-Packard Development Company, L.P. System for controlling I/O devices in a multi-partition computer system
US7613847B2 (en) 2006-05-16 2009-11-03 Hewlett-Packard Development Company, L.P. Partially virtualizing an I/O device for use by virtual machines
JP5068056B2 (ja) 2006-10-11 2012-11-07 株式会社日立製作所 障害回復方法、計算機システム及び管理サーバ
US9098347B2 (en) 2006-12-21 2015-08-04 Vmware Implementation of virtual machine operations using storage system functionality
US7734859B2 (en) 2007-04-20 2010-06-08 Nuon, Inc Virtualization of a host computer's native I/O system architecture via the internet and LANs
US8464260B2 (en) 2007-10-31 2013-06-11 Hewlett-Packard Development Company, L.P. Configuration and association of a supervisory virtual device function to a privileged entity
US7945436B2 (en) 2007-11-06 2011-05-17 Vmware, Inc. Pass-through and emulation in a virtual machine environment
US8141093B2 (en) 2007-11-15 2012-03-20 International Business Machines Corporation Management of an IOV adapter through a virtual intermediary in an IOV management partition
US8141094B2 (en) 2007-12-03 2012-03-20 International Business Machines Corporation Distribution of resources for I/O virtualized (IOV) adapters and management of the adapters through an IOV management partition via user selection of compatible virtual functions
US8359415B2 (en) 2008-05-05 2013-01-22 International Business Machines Corporation Multi-root I/O virtualization using separate management facilities of multiple logical partitions
US7913024B2 (en) 2008-12-09 2011-03-22 International Business Machines Corporation Differentiating traffic types in a multi-root PCI express environment
US8144582B2 (en) 2008-12-30 2012-03-27 International Business Machines Corporation Differentiating blade destination and traffic types in a multi-root PCIe environment

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014026374A1 (zh) * 2012-08-17 2014-02-20 华为技术有限公司 服务器系统、管理方法及设备
CN103609077A (zh) * 2013-06-18 2014-02-26 华为技术有限公司 用于数据传输的方法、装置和系统以及物理网卡
WO2014201623A1 (zh) * 2013-06-18 2014-12-24 华为技术有限公司 用于数据传输的方法、装置和系统以及物理网卡
CN103609077B (zh) * 2013-06-18 2017-02-22 华为技术有限公司 用于数据传输的方法、装置和系统以及物理网卡
CN104657305A (zh) * 2013-11-22 2015-05-27 国际商业机器公司 用于实现支持sriov的sas适配器的动态虚拟化的方法和系统
CN104657305B (zh) * 2013-11-22 2018-02-23 国际商业机器公司 支持sriov的sas适配器的动态虚拟化的方法和系统
CN103853676B (zh) * 2014-03-28 2016-08-17 苏州科达科技股份有限公司 基于PCIe总线的信道分配、释放、数据传输方法和系统
CN107148623A (zh) * 2014-10-24 2017-09-08 思科技术公司 Pcie设备和功能与主机阵列的动态连接
CN106502941A (zh) * 2016-11-25 2017-03-15 北京兆芯电子科技有限公司 输入输出扩展器、计算机系统以及其配置方法
WO2020259269A1 (zh) * 2019-06-25 2020-12-30 华为技术有限公司 转发报文的方法、中间设备和计算机设备
US11604742B2 (en) 2019-06-25 2023-03-14 Huawei Technologies Co., Ltd. Independent central processing unit (CPU) networking using an intermediate device
WO2023093843A1 (zh) * 2021-11-29 2023-06-01 华为技术有限公司 一种配置装置、调度装置及配置方法和调度方法

Also Published As

Publication number Publication date
US8141092B2 (en) 2012-03-20
JP2009123217A (ja) 2009-06-04
JP5305848B2 (ja) 2013-10-02
CN101436165B (zh) 2012-06-27
US20090133028A1 (en) 2009-05-21

Similar Documents

Publication Publication Date Title
CN101436165B (zh) 用于iov适配器管理的系统和方法
CN101452424B (zh) 用于管理输入/输出虚拟化的方法和数据处理系统
US8359415B2 (en) Multi-root I/O virtualization using separate management facilities of multiple logical partitions
US8141093B2 (en) Management of an IOV adapter through a virtual intermediary in an IOV management partition
US9384060B2 (en) Dynamic allocation and assignment of virtual functions within fabric
CN101076782B (zh) 提供虚拟刀片服务器的方法和装置
US9519795B2 (en) Interconnect partition binding API, allocation and management of application-specific partitions
US7574491B2 (en) Virtual data center for network resource management
CN101142553B (zh) 跨越多个计算平台的操作系统不可知的资源共享
US10635499B2 (en) Multifunction option virtualization for single root I/O virtualization
US20060064523A1 (en) Control method for virtual machine
JP4576398B2 (ja) マルチパーティションコンピュータシステムのi/oデバイスを制御するためのシステム
US20080162809A1 (en) Operating system-independent remote accessibility to disk storage
US20130346584A1 (en) Control method for virtual computer, and virtual computer system
US8793481B2 (en) Managing hardware resources for soft partitioning
JP2010257274A (ja) 仮想化環境におけるストレージ管理システム及びストレージ管理方法
WO2010123509A1 (en) Virtualized data storage in a virtualized server environment
US9804877B2 (en) Reset of single root PCI manager and physical functions within a fabric
US20160077847A1 (en) Synchronization of physical functions and virtual functions within a fabric
US10965616B2 (en) Nonstop computing fabric arrangements
US8595362B2 (en) Managing hardware resources for soft partitioning
US8601128B2 (en) Managing hardware resources for soft partitioning
Haga et al. Windows server 2008 R2 hyper-V server virtualization
CN114115703A (zh) 裸金属服务器在线迁移方法以及系统
Castillo et al. IBM PowerVM Getting Started Guide

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