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

文档序号:6467940阅读:297来源:国知局
专利名称:用于iov适配器管理的系统和方法
技术领域
本发明大体上涉及改进的数据处理系统和方法。更具体地,本
发明旨在用于通过在系统管理器(hypervisor)中的虚拟中介以及通 过在输入/输出虚拟化(IOV)管理分区中的管理程序而管理输入/输 出虛拟化(10V )适配器的系统和方法,所述输入/输出虛拟化(10V ) 适配器诸如外围组件互连(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) IIO和存储器120,根联合体130接着耦合到一个或多个PCIe端点 140 (在PCIe规范中,使用术语"端点"来指代支持PCIe的I/O适 配器)、PCIExpress-PCI桥150以及一个或多个互连交换机160。 根联合体130表示将CPU/存储器连接到1/0适配器的1/0层级的根。 根联合体130包括主桥(host bridge)、零个或更多根联合体集成端 点、零个或多个根联合体事件收集器以及一个或多个根端口。每个根端口支持单独的1/0层级。1/0层级可包括根联合体130、零个或 更多互连交换机160和/或桥150 (其包括交换器或PCIe架构)以及 诸如端点140、 170和182-188的一个或多个端点。关于PCI和PCIe 的更多信息,参见在www.pcisig.com的外围组件互连特别兴趣组 (PCI画SIG)的网站上可获得的PCI和PCIe规范。
除了 PCI和PCIe规范,PCI-SIG也已经定义了用于如何设计可 由若干逻辑分区(LPAR)共享的I/0适配器(IOA)的输入/输出虚 拟化(IOV)标准。LPAR是将计算机的处理器、存储器和存储设备 划分为多个资源组,这样可将每个资源组由其自身的操作系统实例 和应用独立地操作。可创建的逻辑分区的数量依赖于系统的处理器 模型和可用的资源。典型地,将分区用于诸如数据库操作、客户/服
务器操作的不同目的、以便隔离测试环境和生产环境等。每个分区 能够与其他分区通信,如同其他分区位于单独的机器上。在支持多
个LPAR的现代系统中,可在LPAR之间共享一些资源。如上文所 提到的,在PCI和PCIe规范中, 一种可共享的此类资源是使用I/O 虛拟化机制的1/0适配器。
虽然PCI-SIG提供了用于定义如何设计可由若干LPAR共享的 IOA的标准,但是此规范没有定义如何将IOA连接到主系统。而且, 该标准没有规定如何管理利用了 1/0虚拟化的IOA的共享的功能。 这是由于PCI-SIG规范所关注的是建立用于在根联合体之下的PCIe 架构的操作的标准。换句话说,PCI-SIG没有提供对用于根联合体以 及其上的标准的任何定义,这是因为,将根联合体以及其上考虑作 系统室(system houses )的领域。即,例如Intel平台、IBM Power
统实现需求。

发明内容
说明性的实施例提供了用于使用在IOV管理分区中的功能管 理,通过在系统管理器中的虛拟中介而管理输入/输出虚拟化(IOV)适配器的系统和方法。说明性的实施例的机制试图解决这样的情况, 其中由多于一个的逻辑分区(LPAR)共享输入/输出(I/O)架构,
以及其中每个LPAR能够潜在地与其他多个LPAR共享I/O适配器 (IOA)。所示出的实施例定义了一种机制,用于在I/0虚拟化管理 分区(IMP)中,当将多个虚拟功能(VF)直接分配给用于常规1/0 操作的客户分区时,通过物理功能(PF)而使一个LPAR来控制支 持1/0虚拟化的IOA的共享功能。
特别地,利用说明性的实施例的机制,向每个LPAR分配其自 身的单独的地址空间来访问分配给它的虚拟功能(VF),以及直接 接收来自被分配给它的VF的中断,使得每个LPAR的感知在于,为 了常规的1/0操作的目的,其具有其自身的独立的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端点的至少 一个物理功能或虚拟功能。该方法可进一步包括使用与1/0虚拟化管理分区(IMP)相分离的虚拟中介来控制1/0虛拟化管理操作对一个 或多个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)指引1/0虚拟化管理操作的执行。来自HMC 的输入可以是发起用于将新的I/O端点添加到数据处理系统的热插 式操作的命令。在此情况下,执行I/O虚拟化管理操作可包括基于新 的I/0端点的添加,而向一个或多个客户分区分派资源,基于新I/0 端点的添加而配置IMP,以及动态地向在一个或多个客户分区中的 至少一个客户分区中添加新的I/O端点的至少一个虚拟功能。
来自HMC的输入可以是发起用于将已有的1/0端点从数据处理 系统移除的热插式操作的命令。在此情况下,执行I/0虛拟化管理操 作可包括标识具有与将被移除的I/O端点的虚拟功能相关联的资源 的一个或多个客户分区中的至少一个客户分区,以及从由至少一个客户分区的使用中移除虚拟功能以及与虚拟功能相关联的资源。执
行I/0虚拟化管理操作可进一步包括从由IMP的使用中移除物理功 能以及与物理功能相关联的资源,并使将被移除的1/0端点断电 (power down )。
来自HMC的输入可以是动态地重新配置数据处理系统的命令。 在此情况下,执行I/O虚拟化管理操作可包括接收对要添加到在 一 个 或多个客户分区中的所选择的客户分区的1/ O端点的虚拟功能的选 择,设置用于在所选择的客户分区中的所选择的虚拟功能的资源, 以及加载用于在所选择的客户分区中的所选择的虚拟功能的设备驱 动。
来自HMC的输入可以是动态地重新配置数据处理系统的命令。 在此情况下,执行I/O虛拟化管理操作可包括接收对要从在一个或多 个客户分区中选择的客户分区中移除的I/O端点的虚拟功能的选择, 从由所选择的客户分区的进一步使用中移除所选择的虚拟功能,以 及移除用于在所选择的客户分区中的所选择的虛拟功能的资源。
来自HMC的输入可以是改变与1/0端点的所选择的虛拟功能相 关联的网络地址的命令。在此情况下,执行1/0虛拟化管理操作可包 括标识与所选择虚拟功能相关联的物理功能,以及向IMP发送管理 请求。管理请求可包括用于改变所选择的虚拟功能的网络地址的地 址信息。执行I/0虚拟化管理操作可进一步包括,基于在管理请求中 的地址信息,经由与物理功能相关联的设备驱动,改变所选择的虚 拟功能的网络地址。
执行I/O虛拟化管理操作可包括在虚拟中介中接收来自在一个 或多个客户分区的客户分区中的设备驱动的查询虚拟功能错误状态 固件调用,以及从虚拟中介向设备驱动提供标识了 I/O端点的虚拟功 能的错误状态的错误信息。而且,执行I/0虚拟化管理操作可包括 由设备驱动登记从虚拟中介接收的错误信息,向数据处理系统的固 件发送来自设备驱动的复位虚拟功能请求,以复位具有错误状态的 虚拟功能,以及在复位后,配置虚拟功能。
1执行I/O虚拟化管理操作可包括,由所述虚拟中介检测客户分区
失效;确定是否将执行客户分区重新引导操作;如果不要重新引导 客户分区,则从一个或多个I/O端点移除与失效的客户分区相关联的 虛拟功能资源,以及向自由虚拟功能资源池添加所移除的虚拟功能 资源。而且,执行I/0虚拟化管理操作可包括,如果将重新引导客户 分区,则在失效的客户分区重新引导之后,由虚拟中介向失效的客 户分区重新分配虚拟功能资源。
进一 步地,执行I/O虚拟化管理操作可包括由虚拟中介检测IMP 的失效,并发起对IMP的重新引导。执行I/0虚拟化管理操作可进 一步包括,暂停由关于与被分配给IMP的多个物理功能相关联的多 个虚拟功能的一个或多个客户分区做出的固件调用,直到对IMP的 重新引导完成,以及在完成对IMP的重新引导之后,停止对由一个 或多个客户分区做出的固件调用的暂停。
在另一个说明性的实施例中,提供一种包括计算机可读介质的 计算机程序产品,其具有记录在其上的计算机可读程序。当在计算 设备上执行时,计算机可读程序引起计算设备来执行上文关于方法 说明性的实施例而概述的多种操作及其组合。
在另一个说明性的实施例中,提供了一种装置。该装置可包括 处理器和耦合到处理器的存储器。存储器可包括指令,当由处理器
多种操作及其组合。
在下文的对本发明的示例性实施例的详细描述中,描述了本发 明的这些以及其他特征和优点,或者考虑到在下文的对本发明的示 例性实施例的详细描述,本发明的这些以及其他特征和优点将对那 些所属领域普通技术人员变得显而意见。


当连同附图阅读时,通过参考下文对说明性的实施例的详细描 述,将更好地理解本发明以及优选的使用模式和其进一步的目的和优点,其中附图包括
图1是示出了在所属领域中周知的合并有PCIe架构拓朴的系统 的示例图2是示出了在所属领域中周知的系统虚拟化的示例的第一方式的示例图4是示出了用于使用本地共享PCI 1/0适配器来使PCI根联合 体的1/0虚拟化的第二方式的示例图5是支持PCIe I/O虚拟化端点的示例图6是系统结构的示例图,其中根据一个说明性的实施例而利 用了支持IOV的端点或适配器;
图7是示出了根据一个说明性的实施例的一组示例性逻辑分区 (LPAR)对平台固件调用的定义的示例图8是示出了根据一个说明性的实施例的一组示例性硬件管理 控制台(HMC)对平台的请求和响应的定义的示例图9是概述了根据一个说明性的实施例的用于具有1/0虚拟化 (IOV)适配器的系统的示例性"启动(bring up)"操作的流程图10A-10B是根据一个示例性实施例概述了用于将IOV适配器 添加到系统的示例性热插式操作的流程图11是根据一个说明性的实施例概述了用于将IOV适配器从系 统移除的示例性热插式操作的流程图12是根据 一 个说明性的实施例概述了用于动态地将虚拟功能 (VF)添加到逻辑分区(LPAR)的示例性操作的流程图13是根据一个说明性的实施例概述了用于动态地将VF从 LPAR移除的示例性操作的流程图14是根据一个说明性的实施例概述了用于从由VF所招致的 错误中进行错误恢复的示例性操作的流程图15是根据一个说明性的实施例概述了用于改变在网络适配器 上的网络地址的示例性IOA南侧管理操作的流程图;图16是根据 一 个说明性的实施例概述了用于客户分区终止的示 例性操作的流程图;以及
图17是根据 一 个说明性的实施例概述了用于I MP分区终止的示
例性操作的流程图。
具体实施例方式
说明性的实施例提供了用于通过在系统管理器中的虚拟中介以
及通过在10 V管理分区中的管理程序而管理输入/输出虛拟化(10 V ) 适配器的机制。因而,为了理解说明性的实施例的机制,重要的是, 首先理解在利用了系统管理器或者其他虚拟化平台的系统中可以如 何实现1/0虚拟化。应当意识到,虽然关于外围组件互连快递(PCIe, Peripheral Component Interconnet Express )适配器或端点而3夸描述"i兌 明性的实施例,但是,本发明不限于此。而是,可以将说明性的实 施例的机制实现在支持在I/O适配器内的I/O虚拟化的任何I/O架构
之内。而且,应当意识到,虽然根据利用了系统管理器的实现而描 述了说明性的实施例,但是,本发明不限于此。相反地,可使用除 系统管理器之外的其他类型的虚拟化平台,而无论其是当前已知或 稍后开发的以软件、硬件或软件和硬件的任何组合实现,这并不脱 离本发明的精神和范围。
图2是示出了在所属领域中周知的系统虚拟化的示例图。系统 虛拟化是对物理系统的处理器、存储器、1/0适配器、存储设备以及 其他资源的划分,其中每组资源利用其自身的系统镜像实例和应用 而独立"t乘作。在此系统虛拟化中,虚拟资源由物理资源组成,以及 作为物理资源的代理,物理资源例如存储器、盘设备以及具有架构 化的接口 /功能的其他硬件组件,虛拟资源具有相同外部接口和功能。 系统虛拟化典型地利用虚拟化层,该虚拟化层创建虚拟资源并将其 映射到物理资源,借以提供虚拟资源之间的隔离。典型地将虛拟化 层提供为软件、固件和硬件机制之一,或者软件、固件和硬件机制 的组合。如图2中所示,典型地在虚拟化系统中,应用210与系统镜像 (SI) 220通信,系统镜像220是诸如一般或专用操作系统的软件组 件,并利用其分配特定的虚拟和物理资源。系统镜像220与虚拟系 统230相关联,其包括为运行单个SI实例所必需的物理或虚拟资源, 例如,虚拟化处理器、存储器、1/0适配器、存储设备等。
通过使用虛拟系统230,系统镜像220借助于虛拟化层240访问 物理系统资源250。虚拟化层240管理对SI的资源分配,以及将分 配给SI的资源与来自其他SI的访问隔离。通常基于由虛拟化层240 执行的资源映射,以及由虚拟化层240维护的一种或多种资源映射 数据结构来执行此分配和隔离。
可使用此类虚拟化来允许对1/0操作和I/O资源的虚拟化。即, 关于I/0虛拟化(IOV),可由使用虚拟化层240的超过一个的SI 共享单个物理的I/O单元,可将虚拟化层240部分地或完全地以系统 管理器实现。系统管理器可以是软件、固件或其类似,使用其来通 过干涉例如来自SI的配置、1/0和存储器操作以及去往SI的直接存 储器访问(DMA)、完成和中断操作的一个或多个而支持IOV。
的第一方式的示例图。如图3所示,可以是芯片、主板、刀片(blade) 或其类似的一个或多个的处理器的主处理器组310,其可支持多个系 统镜像320-330,应用(未示出)通过所述多个系统镜像320-330可 访问诸如PCIe端点370-390的系统资源。系统镜像经由虚拟化层 340、 PCIe根联合体350、以及一个或多个PCIe交换机360、和/或 其他PCIe架构单元而与虛拟化的资源通信。
利用图3示出的方式,可以部分地或者完全地实现为系统管理
以及执行所有1/0虚拟化功能。例如,虚拟化层340将来自多种SI 的I/O队列的1/0请求多路复用到在PCIe端点370-390中的单个队 列上。因而,虚拟化层340充当在SI 320-330和物理PCIe端点370-390
之间的4戈理。图4是示出了用于使用本地共享PCI 1/0适配器来使PCI根联合 体的1/0虛拟化的第二方式的示例图。如图4所示,可以是芯片、主 板、刀片或者类似的一个或多个的处理器的主处理器组410,其可支 持多个系统镜像420-430,应用(未示出)通过多个系统镜像420-430 可访问诸如PCIel/0虚拟化(IOV)端点470-490的系统资源。系统 镜像420-430经由PCIe根联合体440、以及一个或多个PCIe交换机 460、和/或其他PCIe架构单元而与虚拟化的资源通信。
PCIe根联合体440包括促进了与支持IOV的端点470-490的I/O 操作的虛拟化的根联合体虚拟化使能者(RCVE, root complex visualization 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的内建的例如物理和虚拟功能的1/0虚拟化逻辑,使得在SI420-430和端点470-490之间的直接I/O操作成为可能。执行直接I/O 操作的能力显著地增加了执行I/O操作的速度,但其需要PCIe端点 470-490支持I/O虚拟化。
图5是支持PCIel/0虚拟化(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 虛拟化的端点内,虚拟功能是共享 一 个或多个例如链路的物理端,泉 资源的功能,以及可在例如PCIeIOV端点500的可共享资源池580 中用另一个功能来提供该功能。无需来自系统管理器的运行时干预, 虛拟功能可以直接作为用于来自系统镜像的1/0和存储器操作的接 收器,以及作为直接存储器访问(DMA)、对系统镜像(SI)的完 成以及中断操作的源。
关于由PCIe端点支持的"功能",PCIe端点可以具有许多不同 类型的配置。例如,端点可支持单个物理功能(PF)、多个独立的 PF、或者甚至多个相依赖的PF。在支持本地I/0虚拟化的端点中, 端点支持的每个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 (1/0虚拟化管理分区(IMP))通过物理功能(PF) 来控制支持1/0虚拟化的IOA的共享功能。
特别地,利用说明性的实施例的机制,向每个LPAR分配其所 自身的单独的地址空间来访问分配给它的虚拟功能(VF),以及来 接收直接来自被分配给它的VF的中断,使得每个LPAR的感知在于, 对于常规的I/0操作,其具有其自身的独立的IOA。随着每个LPAR 得到其自身的VF,诸如PCI Express ( PCIe ) I/O虚拟(IOV )适配 器或I/O端点的IOA的VF组可^皮在多个LPAR间共享。通过将PF 分配给I/O虚拟化管理分区(IMP),经由10V适配器/端点的物理 功能(PF),说明性的实施例的机制为管理IOV适配器或I/0端点 的共享资源提供了便利。此外,为了访问公共VF功能的目的,IMP 作为到PF的接口 (例如,对于网络适配器而言,用于VF的网络地 址),此处将其称为适配器南侧管理。
系统管理器向运行于IMP中的代码提供了独立于IOV的便利。 IMP可包括设备专用的代码,而无需系统管理器牺牲其大小、鲁棒 性和可升级性。系统管理器提供了虚拟中介功能,用于共享和控制 IOV适配器的控制功能。更特别地,运行于系统管理器中的代码为 了充分地管理VF错误处理、VF复位和配置操作的目的而向多个VF 表现为虛拟中介(VI)。
图6是系统结构的示例图,其中根据一个说明性的实施例而利 用了支持IOV的端点或适配器。可以结合在图4中示出的机制而实 现在图6中示出的机制。例如,可利用与在图4中的系统镜像1 420 相关联地提供在图6中示出的IMP603,同时,可利用与在图4中的 系统镜像2 430相关联地提供在图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、 1/0架构611以及一个 或多个I/O端点614-616,主系统626可以是例如服务器、客户计算 设备或其类似的任何数据处理设备,I/O架构611可以包括一个或多 个通信链路以及一个或多个交换机,1/0端点614-616在一个说明性 的实施例中可以是具有作为支持IOV的端点的I/O端点614的PCIe I/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内执行的操作系统镜像或 实例和资源。此外,LPAR603和604可在LPAR内执行其他应用、 软件、代码或其类似。例如,关于说明性的实施例的特定重要性, 例如LPAR 603的多个LPAR之一执行引起LPAR 603来作为IOV管 理分区(IMP) 603而操作的代码。其他多个LPAR604可作为客户 分区而操作。虽然在图6中仅示出了一个IMP 603和一个客户分区 604,应当意识到,在主系统626中可提供多于一个IMP 603和客户 分区604,而不脱离说明性的实施例的精神和范围。
系统管理器625能够访问IOV端点614的配置空间619、 621, 以及访问1/0架构611的配置空间617。在这里所使用的术语"配置空间"指代来自存储器映射1/0 (MMIO)地址空间的不相交的地址 空间,分派该存储器映射1/0 (MMIO)地址空间用于在存储用于系 统601的特定组件的配置数据中使用。进一步地,当将多个物理功 能(PF ) 612分配给IMP 603时,IMP的操作系统631和设备驱动 605能够访问用于多个物理功能(PF) 612的配置空间619,以及能 够访问属于被分配给IMP 603的PF的多个虛拟功能(VF) 613的配 置空间621。客户分区操作系统632和设备驱动606能够直接访问被 分配给它们的多个VF613的任何配置空间621。系统管理器625充 当中介,或者更具体地,充当虚拟中介(VI)来确保多个客户分区 能够访问为它们正确地操作其多个VF 613所需要的配置空间,但不 能访问会引起有关其他客户分区的问题的配置空间。即,客户分区 604仅访问为其多个VF613所分派的配置空间。客户分区604进一 步能够访问为其多个VF613所分配的存储器映射1/0 (MMIO)空 间622。
在硬件管理控制台(HMC)609上的管理应用640以及HMC609 自身,通过到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 所使用,来访问其相关联的多个VF613的配置空间621。系统管理 器625充当用于这些调用的VI,以及防止客户分区604执行会影响 其他客户分区的配置操作。也由IMP 603来使用此调用来再次利用 系统管理器625配置其多个PF619,系统管理器625充当VI来防止 IMP 603访问不是其控制的域的部分的多个PF和VF的配置空间。 此外,作为IOV环境中的VI,系统管理器625也需要执行由PCI SIG IOV规范所指定的动作。例如,在VF中没有复制一些配置字段,以 及因而,当通过VF的配置空间621访问PF的配置空间619时,由 系统管理器625提供的VI必须获得来自PF的配置空间619的这些 字段。
复位PF调用704是可由IMP 603做出的多个PF专用调用之一。 此调用使例如PF621的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可复位它们的多个VF 613。系统管理器625充当VI并在向VF613发出复位之前验证在复 位VF调用708中指定的VF613被分配给了分区。以此方式,系统 管理器625防止一个客户分区复位另一个客户分区的(多个)VF。 如将在后文描述的,由于在这些分配操作中涉及系统管理器,因而 系统管理器跟踪将哪些VF分配给哪些分区,以及系统管理器能够例 如通过在多个系统管理器数据结构之一 中存储该信息而跟踪有关用 于诸如这些操作的验证操作的信息。
查询PF和VF错误状态调用710是对允许在IMP 603中的例如 设备驱动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,来打开到PF612或VF613的路径,而无须允许 DMA路径打开。继而,设备驱动605、 606可使用MMIO加载和存 储操作来为了问题确定的目的而从I/0端点614获得状态信息。除了 从MMIO加载和存储操作中得到设备专用的错误信息之外,还可以 使用查询I/O架构错误信息调用714来得到针对问题确定的非设备专 用的错误信息。
对所有中断使用查询中断源调用716来得到中断源,以便虚拟 化中断控制器。因而,如在图7中示出的,可由客户分区604和IMP 603 二者使用查询中断源调用716。使用建立DMA转换调用718来 建立用于将I/O地址转换为系统地址的转换机制。此地址转换机制是 为I/0虚拟化所需要的。对于这些调用,系统管理器625充当VI, 并防止客户分区604建立将会影响其他客户分区的地址转换。系统 管理器625负责向多种分区分配资源,例如,存储器、多个处理器 和I/0资源,以及之后,将该信息保持在其数据结构中用于验证访问 例如特定存储器地址的该资源的分区的权限。如图7所示,由于PF 通常无须针对IMP 603执行DMA操作,因而可由客户分区604而一 般不是IMP 603使用建立DMA转换调用718。
最终,从LPAR的使用中添加/移除VF的调用720、和从LPAR 的使用中添加/移除PF的调用722用于将在下文描述的IOA热插式 和动态重新配置操作。通过定义,由于没有将多个VF分配给IMP 603,以及VF的所有者控制VF的热插操作,因而由客户分区604 而非IMP 603使用从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,可就1/0 架构配置而查询系统管理器625。例如,在初始系统启动(bring up) 时,可由HMC 609使用此请求802来获得所有可用的I/O设备及其 功能,这样可将其向用户呈现用于选择和对用户希望配置的多种 LPAR的分配。
由HMC 609使用建立初始LPAR I/O配置请求804,来通知系统 管理器625在HMC 609的用户已经决定配置什么。此配置不仅包括 1/0配置,而且包括LPAR配置特性,诸如被分配给在系统中的多种 LPAR的CPU的数量以及存储器的数量。
也可由HMC 609通知系统管理器625针对I/O适配器或端点何 时加电(powerup)以及何时断电。通过加电/断电IOA请求806可 以实现这一点。
有若千HMC到平台的请求808-812,由HMCM吏用其来指示对 系统的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。如同下文讨论的,当例 如将1/0适配器或端点热插式地添加到系统时,这可能发生。此请求 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^f吏用其来指示 从系统中动态移除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移除已经存在的1/0适配器或端点的能力时,这可能发生,使得 可将其再次分配给另 一个LPAR用于该LPAR的Y吏用。此请求通知 客户分区604来停止使用VF,请求对VF的复位,移除设备驱动, 以及从OS的架构配置中移除VF。客户分区604通过从LPAR的使 用中添力口/移除VF的调用720的"移除"能力而向系统管理器625 发信号通知操作的完成。
对PF的动态移除请求818通知IMP 603: PF将^皮移除。如上所 述,在发出此请求之前,HMC 609必须从使用中的客户分区604移 除与PF相关联的所有的VF。例如当从系统中热插式地移除I/0适 配器或端点时,对PF的移除可能发生。此请求818通知IMP 603来 停止使用PF,通过复位调用704请求对PF的复位,移除设备驱动, 以及从OS的架构配置中移除PF。 IMP 603通过从LPAR的使用中 添力口/移除PF的调用722的"移除"能力而向系统管理器625发信 号通知操作的完成。
IMP 603的重要功能是提供对1/0适配器或端点的资源的安全访 问,该1/0适配器或端点的资源或者在正使用与PF相关联的多个 VF的多个LPAR间共享,或者该1/0适配器或端点的资源对于VF 而言是唯一的,但针对由PF进行的改变,VF应该是不可访问的。 网络I/O适配器或端点的此类资源的 一个例子是与由多个VF共享的 PF相关联的网络地址,或者对于VF而言唯一的网络地址。此处将 对这些设备专用资源的管理称作对I/O适配器或端点的"南侧"管理。 由1/0适配器(IOA)或端点通过HMC 609实现这一点,通过在HMC 609上的安全应用(例如,登录应用或者其他认证应用)保障南侧管 理请求820和所有此类管理。当IMP 603接收用于IOA的IOA南侧 管理请求820时,IMP 603向设备驱动605传送用于PF的请求,以 及设备驱动605通过PF接口向10A4故出设备特定请求,以Y更实现 jt匕i青》,。通过使用查询先前命令完成和状态的请求822,来向原始请求的 目标做出所有的HMC到平台请求800的当前状态。这允许HMC 609 来整理一系列的HMC请求,以及通过HMC接口向用户指出先前的 请求的状态。由于完成一些操作是相当慢的,以及希望能够访问此 类请求的当前状态,因而可做出此类请求。
现在,当前的描述转向对上文在图7-8中示出的多种请求和调用 的使用的更详细的解释。图9-17是概述了说明性的实施例机制的多 种操作的流程图。例如,在图6中描述了可由例如HMC、系统管理 器、IMP、客户分区、平台固件/硬件、1/0端口及其类似的多种机制 实现在图9-17中概述的操作。因而,作为参与在图9-17中概述的操 作的执行的说明性的实施例的机制的一个例子,适当的时候对图6 的单元进行参考。
应当理解,可由计算机程序指令实现流程图示的每个方块以及 在流程图示中的多个方块的组合。可向处理器或其他可编程数据处 理设备提供这些计算机程序指令来产生一种机器,使得在处理器或 其他可编程数据处理设备上执行的指令创建用于实现在一个或者多 个流程方块中描述的功能的装置。也可在计算机可读存储器或存储 介质上存储这些计算机程序指令,其能够指引处理器或其他可编程 数据处理设备来以特定方式工作,使得存储在计算机可读存储器或 存储介质中的指令产生包括实现在一个或者多个流程方块中描述的 功能的指令装置的制品。
因而,流程图示的多个方块支持用于执行特定功能的装置的组 合、用于执行特定功能的步骤的组合、以及用于执行特定功能的程 序指令装置。也应当理解,通过执行特定功能或步骤的基于专用硬 件的计算机系统,或者通过专用硬件和计算机指令的组合可以实现 流程图示的每个方块以及在流程图示中的方块的组合。
进一 步地,提供流程图来展示在说明性的实施例中执行的操作。 流程图并不意味着声明或暗示关于特定操作或更具体地操作顺序的 限制。可调整流程图的操作来适应特定实现,而不脱离本发明的精神和范围。
图9是概述了根据一个说明性的实施例的用于具有1/0虛拟化
(IOV)适配器的系统的示例性"启动"("bring-up")操作的流 程图。如图9所示,初始的I/O架构提出操作900开始于执行I/O架 构加电(步骤902 )。响应于对I/O架构的加电,系统管理器625可 通过诸如探查I/0架构611的配置空间来发现耦合到1/0架构611的 所有I/O适配器614-616 (步骤904)、由发现操作找到的I/O适配 器614-616的功能(步骤906 ),以及诸如通过检测IOV配置空间所 发现的哪些功能是多个PF612 (步骤908 )。
对于多个PF,系统管理器625可探查配置空间,例如,诸如通 过读取在每个PF的配置空间中的初始VF字4殳,来进一步确定由每 个PF所支持的多个VF的数量(步骤910)。继而,系统管理器625 可确定为系统601中的I/0适配器(IOA) 614-616所必需的所有系 统资源,以及更具体地,在此情况下为多个VF所需要的那些资源(步 骤912)。资源包括如下各项诸如为将IOA映射到用于来自系统 中的处理器的存储器映射I/O (MMIO)加载和存储操作的存储器空 间所需要的1/0地址空间、所需要的请求者标识符(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和功能数量的项。信息进一步地可包括由1/0适配器或端点所支持的PF的数量、
每个PF可支持的VF的数量,诸如其可由多个PF的多个初始VF以 及对由于以上文提到的方式或者类似地由系统管理器625所计算的 系统限制而可支持的多个V F的数量的计算来确定。
现在,在HMC 609的用户要确定他们希望如何分派所有的系统 资源。注意,也可通过运行在HMC 609中的用于向系统601的逻辑 分区分配或分派系统资源的自动化脚本或者任何其他自动化机制而 非人工来完成这一点。因而,在示例性的实施例中,HMC 609向用 户展现了所收集的I/O架构和端点信息(步骤918),以及用户描述 将如何分派这些资源(步骤920)。此分配不仅包括1/0,而且也包 括诸如处理器和存储器的其他系统资源。例如, 一旦用户已经做出 了对资源的分配,则经由在图8中的设置初始LPARI/0配置HMC 请求804,向系统管理器625报告这一点(步骤922 )。
对于多个VF,如果由用户指定的VF的数量(被分配的和自由 池的二者)少于用于对应的PF的初始VF,那么系统管理器625可 将PF的NumVFs配置空间参数设置为所期望的值,以及可以经由根 据在PCIIOV规范中定义的VF使能位,来允许用于多个PF的I/O 虛拟化(步骤924)。继而,系统管理器625可建立每个分区的资源, 该资源包括MMIO寻址、DMA寻址、中断以及其他资源(步骤926), 以及可创建(多个)IMP 603所必需的分区(步骤928)。
继而,系统管理器625引导用于(多个)IMP 603和(多个)客 户分区604的分区固件623和624,以及可向(多个)IMP 603和(多 个)客户分区604传送I/O配置结构用于在那些LPAR中的OS使用 (步骤930 )。当向(多个)客户分区604分配(多个)VF613时, 系统管理器625开始调节(moderate)(即,开始充当虚拟中介)用 于所有的从(多个)客户分区604到它们的(多个)VF613的I/O 配置访问(步骤932 )。系统管理器625可引导IMP分区的(多个) OS,以及继而,可等待来自(多个)IMP 603的就已经初始化了 (多 个)PF 612的指示(步骤934 )。例如,经由在图7中的从LPAR的使用中添加/移除PF的固件调用722的"添加"功能,(多个)IMP 603可给出此指示。
一旦用于VF613的IMP 603已经初始化了 PF612,则可加载用 于VF613的OS (步骤936 )。(多个)客户分区604可加载多个设 备驱动606用于它们的(多个)VF613 (步骤938 )。 一旦为VF 613 加载了设备驱动616,则需要例如经由读/写I/O配置空间调用702 来配置其VF613 (步骤940)。继而,设备驱动606可开始^f吏用其 VF613,以及继而#:作终止。
一旦系统启动且可运行,则希望能够向系统动态地添加新的I/O 适配器或端点。图10A-10B是根据一个说明性实施例概述了用于将 IOV适配器添加到系统的示例性热插式操作的流程图。如图10A-10B 所示,热插式添加操作1000开始于在HMC控制台609的用户开始 热插式应用(步骤1004),该热插式应用提供用户接口来在热插式 操作期间指引用户。从热插式应用中,用户或应用可选择在1/0架构 611中的空1/0槽,向该空1/0槽插入新的1/0适配器或端点,例如 1/0端点614(步骤1006)。继而,用户可插入新的1/0适配器(IOA) 或端点(步骤1008 ),以及可经由HMC 609才艮告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)。 在此点上,除了VF613添加,IOA添加已经完成,以及系统管理器 625可向HM C609就PF 612添加完成而发信号(步骤1044 )。
HMC 609现在可以向(多个)客户分区604发送动态添加VF 的请求812,该(多个)客户分区604将接收来自新的IOA614的 VF613。这开始了客户分区604过程来添加(多个)VF(步骤1046 )。 在(多个)客户分区604中的(多个)OS可检测(多个)新的VF 613, 以及可加载(多个)设备驱动606用于(多个)新的VF 613 (步骤 1048 )。用于(多个)VF613的(多个)设备驱动606可经由例如 读/写I/O配置空间调用702来配置它们的(多个)VF 613(步骤1050 ), 以及可以开始使用它们新被配置的(多个)VF613。继而操作终止。
除了动态地向"i兌明性的实施例的系统601的I/O架构611添加 1/0适配器或端点,能够允许将I/0适配器或端点从I/0架构611动 态地移除是有益的。图11是根据一个说明性的实施例概述了用于从 系统中移除I/0适配器的示例性热插式操作的流程图。如图11所示, 热插式移除#:作1100开始于在HMC控制台609处的用户开始热插 式应用(步骤1104)。用户可选择要被移除的1/0适配器(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相关联的它们的(多个)VF613 (步骤 1114)。
(多个)客户分区604可经由例如从LPAR使用中添力o/移除的 调用720的"移除"能力而向系统管理器625发信号,来从由(多 个)客户分区604的使用中移除它们的(多个)VF613(步骤1118)。 系统管理器625等待所有使用中的客户分区604来就它们对它们的
(多个)VF的释放而发信号(步骤1120),以及继而,可向HMC 609 报告(多个)VF移除(步骤1122)。
伴随着VF移除完成,现在HMC 609可开始移除与10A614相 关联的(多个)PF 612的过程。HMC 609例如经由动态移除PF的 请求818,通过向包括在IOA 614上的PF 612的每个IMP 603发送 消息,来从使用中移除(多个)PF612来实现这一点。继而,(多 个)IMP 603可根据指示而停止使用所指定的(多个)PF612 (步骤 1126),以及通过从LPAR使用中添力口/移除PF的调用722的"移 除"能力向系统管理器625发信号来从它们的分区使用中移除PF 612。继而(多个)IMP 603可从它们的分区中移除相关联的PF612 资源(步骤1128)。
系统管理器625等待所有使用中的(多个)IMP 603来就它们对
(多个)PF612的释放而发信号(步骤1130),以及可向HMC609 报告(多个)PF移除(步骤1132)。现在不再使用IOA614,以及 HMC 609可向系统管理器625发送消息,以便例如经由加电/断电 IOA请求806的"断电,,能力而关闭对IOA614的电源(步骤1134)。 继而,系统管理器625可^f吏IOA614断电,可从系统管理器625中 移除IOA614资源,以及向HMC 609报告完成(步骤1136) 。 HMC 609可向用户报告完成(步骤1138),由此继而用户能够拔出IOA614(如果期望的话),以及操作完成。
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)。用户可从多个VF613 的可用列表中选择进行添加,以及可指定向哪个客户分区来添加VF 613 (步骤1206) 。 HMC 609可例如经由对PF/VF的动态添加请求 808而向系统管理器625展现此信息(步骤1208 )。系统管理器625 可设置客户分区资源,包括MMIO寻址、DMA寻址、中断及其类似 (步骤1210)。
系统管理器625可通过发送所请求的操作已完成的信号而就操 作已经准备好继续进行而通知HMC 609。接下来,HMC 609可请求 客户分区604来经由动态添加VF的请求812而动态地添加VF 613 (步骤1214)。客户分区604可检测新的VF613,以及可加载用于 新的VF613的设备驱动606 (步骤1216)。用于VF 613的设备驱 动606可例如经由读/写I/O配置空间调用702而配置其VF613 (步 骤1218)。最后,HMC 609可就操作的完成而通知用户,以及操作 完成(步骤1220)。
移除的示例性操作的流程图。在图13中的动态VF移除操作1300 是将在系统601的多个LPAR之间的I/O资源去除的能力的其他部 分。即,可使用在图13示出的操作将VF从其与一个LPAR的关联中移除,以及继而使用在上文的图12中概述出的VF添加操作而将
VF添加到另一个LPAR。可#4居在所示出的详细例子中通过手动用 户过程而完成VF从一个分区的移除以及向另一个分区的添加,或者 通过由程序确定VF未被一个分区充分利用且可被另一个分区使用 而自动地完成将VF从一个分区移除以及向另一个分区添加。对于类 似于存储器的资源,此类负载均衡程序在所属领域中是已知的。可 使用在此处描述的本发明的对VF的动态移除和添加来将负载均衡 程序进行扩展以便还均衡I/O资源。
如图13所示,VF移除操作1300开始于在HMC 609处的用户 开始DR应用(步骤1304 )。用户可以选择将被移除的VF,诸如 VF613 (步骤1306 ),以及HMC 609可向例如系统管理器625发送 动态移除PF/VF请求818 (步骤1308 )。例如,HMC 609可向客户 分区604发送动态移除VF的请求816,来开始VF移除过程(步骤 1310)。根据所指示的,客户分区604可接收此请求,并停止使用 VF613 (步骤1312)。
客户分区604可经由例如从LPAR使用中添加/移除VF的调用 720的"移除,,功能而向系统管理器625发信号来从多个分区的使用 中移除VF 613 (步骤1314)。继而,系统管理器625可从客户分区 604中移除相关联的VF613资源(步骤1316)。系统管理器625可 向HMC 609报告VF的移除(步骤1318 ) 。 HMC 609可就操作的完 成通知用户(步骤1320 ),以及才喿作终止。
除了动态地添加和移除I/0适配器或端点,以及能够在多个 LPAR之间替换多个VF及其相关联的资源,在虚拟化系统中,能够 从错误中恢复对于错误处理的鲁棒性是有用的。说明性的实施例提 供了一种机制,用于能够通过取回错误信息、登记错误信息、复位 和配置多个VF以及继而尝试重新启动未完成的I/0操作而从错误中 恢复。如同后文描述的,在图14中概述了此操作。
图14是根据一个说明性实施例概述了用于从由VF所引发的错 误中进行错误恢复的示例性操作的流程图。在图14中概述的操作使用了停止对VF的所有DMA和MMIO直到设备驱动能够意识到错误 存在的已有技术,并且能够适度地恢复。然而,图14的操作利用说 明性实施例的机制来补充此已有技术,来控制用于多个VF的错误恢 复过程。
如图14所示,在使VF进入MMIO停止状态和DMA停止状态 的错误发生之后,VF错误恢复操作1400开始。在此状态,没有来 自VF的DMA操作将被完成,当处于MMIO停止状态时,将放弃 MMIO存储操作,以及MMIO加载操作将得到所返回的全1的数据。 错误恢复过程开始于例如设备驱动606的设备驱动接收来自MMIO 加载操作返回的全i数据(步骤1404)。不期待返回全1数据的(或 者不确定其是否期待)设备驱动606,例如使用用于VF613的查询 VF错误状态固件调用710,来得到VF状态信息(步骤1406)。由 于在此点时VF613处于错误状态,系统管理器625可响应就VF613 处于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尝试重新启动未完成 的1/0操作(步骤1422),并且操作终止。
如前所述,IMP 603的重要功能是提供对IOA或端点的资源的 安全访问,其中该IOA或端点的资源或者在正使用与PF相关联的 多个VF的多个LPAR间共享,或者该IOA或端点的资源对于VF 而言是唯一的,但针对由PF进行的改变,VF应该是不可访问的。网络I/0适配器(IOA)或端点的此类资源的一个例子是与由多个
VF共享的PF相关联的网络地址,或者对于VF而言唯一的网络地 址。将对这些设备专用资源的管理称作1/0适配器或端点的IOA "南 侧"管理。图15是根据一个说明性实施例概述了用于改变在网络适 配器上的网络地址的示例性IOA南侧管理操作的流程图。应当意识 到,虽然图15具体地指示了改变在网络适配器上的网络地址,可执 行类似的操作用于其他使用与PF相关联的多个VF的多个LPAR间 共享、或者对VF而言是唯一的资源。
如图15所示,操作开始于在HMC控制台609处的用户开始应 用来改变用于VF613的网络地址(步骤1504 )。用户可选择VF613 和地址(或者,应用可基于操作的上下文而提供地址)(步骤1506 )。 HMC 609可确定PF 612和控制VF 613的IMP 603,以及可向IMP 603 发送IOA南侧管理请求820,并在IOA南侧管理请求820中传送VF 613和地址信息(步骤1508 ) 。 IMP 603可向PF设备驱动605传送 信息,以及PF设备驱动605将其继续传送到PF612用于处理(步 骤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,因为该IMP 603充当用于在许多客户分区604中的潜在的许多VF813的资源的 控制器。图17是根据一个说明性的实施例概述了用于IMP分区终止 的示例性操作1700的流程图。如图17所示,随着IMP分区终止, 操作1700开始。系统管理器625能够例如从分区到系统管理器的恐 慌性调用中检测IMP 603分区终止,以及发起对IMP 603的重新引 导(步骤1704),其中所述恐慌性调用是由于不可恢复的软件错误, 或者由于当不可恢复的硬件错误时来自硬件的机器检查中断所造成 的。
除非不暂停查询中断源固件调用716和设置D M A转换固件调用 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/0适配器相关的代码放在单独的 管理分区中,使得将由于频繁更新所造成的系统管理器代码的任何 不稳定性最小化,例如,频繁更新是由于更新用于不同的适配器唯 一的南侧管理软件的代码的必要性。因而,说明性实施例的机制提 供了在最小化不稳定性的同时对系统管理器的更有效的操作。
应当意识到,示例性实施例可采用全部硬件的实施例、全部软 件的实施例或包含硬件和软件单元两者的实施例的形式。在示例性 实施例中,以软件实现说明性的实施例的机制,软件包括但不限于 固件、常驻软件、微码等。
进 一 步地,说明性的实施例可采取从计算机可用或计算机可记 录介质可访问的计算机程序产品的形式,计算机可用或计算机可记 录介质提供了用于由计算机或任何指令执行系统使用或结合计算机 或任何指令执行系统而使用的程序代码。为了描述的目的,计算机 可用或者计算机可记录介质可以是能够包含、存储、通信、传播或 传送程序的任何装置,其中所述程序用于通过指令执行系统、装置 或设备使用,或者结合指令执行系统、装置或设备而使用。
介质可以是例如电的、磁的、光的、电磁的、红外的或半导体 系统(或装置或设备)。计算机可记录介质的例子包括半导体或固 态存储器、磁带、可移除计算机盘、随机访问存储器(RAM)、只 读存储器(ROM)、硬磁盘和光盘。光盘的当前例子包括压缩盘-只读存储器(CD-ROM)、压缩盘-读/写(CD-R/W)和DVD。适合于存储和/或执行程序代码的数据处理系统将包括通过系统 总线直接或间接地耦合到存储器单元的至少一个处理器。存储器单
存储设备和高速緩沖存储器,其提供对至少 一 些程序代码的临时存 储,以便降低在执行期间必须从大容量存储设备重新取得代码的次 数的数量。
可以直接地或通过居间的1/0控制器而将输入/输出或1/0设备 (包括但不限于键盘、显示器、指示设备等)耦合到系统。也可将 网络适配器耦合到系统,来允许数据处理系统通过居间的私有或公 共网络而耦合到其他数据处理系统、或远程打印机、或存储设备。 调制解调器、电缆调制解调器和以太网卡仅为 一 些当前可用的网络 适配器类型。
已经为了示出和描述的目的而展现了对本发明的描述,并且不 旨在以所公开的形式穷尽或限制本发明。对所属领域技术人员,许 多调整和变化是显而易见的。选择并描述实施例,以便最佳地解释 本发明的原则、实际应用,以及允许所属领域其他技术人员来理解 本发明,用于具有适合于特定使用预期的多种调整的多种实施例。
权利要求
1. 一种用于在数据处理系统中管理输入/输出(I/O)虚拟化的方法,包括在所述数据处理系统中创建一个或多个客户分区,每个客户分区具有所述数据处理系统的资源的相关联的部分;对与所述数据处理系统相关联的一个或多个I/O端点执行I/O虚拟化管理操作,其中所述I/O虚拟化管理操作运行以配置所述一个或多个I/O端点的至少一个物理功能或虚拟功能;以及使用与所述I/O虚拟化管理分区(IMP)相分离的虚拟中介来控制所述I/O虚拟化管理操作对所述一个或多个I/O端点的资源的访问,其中所述虚拟中介防止客户分区访问未被分配给所述客户分区的所述一个或多个I/O端点的资源。
2. 根据权利要求1所述的方法,进一步包括 在所述数据处理系统中创建I/0虚拟化管理分区(IMP),其中所述IMP对与所述数据处理系统相关联的 一个或多个I/O端点执行 I/O虚拟化管理操作,借以管理所述 一 个或多个I/O端点的至少 一 个 物理功能,以及其中,不允许所述一个或多个客户分区来对所述至 少 一 个物理功能执行I/O虚拟化管理操作。
3. 根据权利要求1所述的方法,其中由所述虚拟中介执行创建 一个或多个客户分区以及创建所述IMP,以及其中,所述虚拟中介 是与所述数据处理系统相关联的系统管理器。
4. 根据权利要求3所述的方法,其中向系统管理器提供对用于 在所述一个或多个I/O端点中的物理功能和虚拟功能的配置空间的 访问,以及其中,向IMP仅提供对在所述一个或多个I/0端点中用 于被分配给所述IMP的物理功能的配置空间和在所述一个或多个 I/O端点中用于属于被分配给所述IMP的物理功能的虚拟功能的配 置空间的访问。
5. 根据权利要求4所述的方法,其中所述系统管理器允许由客户分区来访问在所述一个或多个I/O端点中被分配给所述客户分区的虚拟功能的配置空间,以及阻止由所述客户分区访问在所述 一 个或多个I/O端点中的没有被分配给所述客户分区的虛拟功能的配置空间。
6. 根据权利要求2所述的方法,进一步包括从硬件管理控制 台(HMC)接收输入,所述硬件管理控制台(HMC)指引所述I/0 虚拟化管理操作的执行。
7. 根据权利要求6所述的方法,其中来自所述HMC的输入是发 起用于将新的I/O端点添加到所述数据处理系统的热插式操作的命 令,以及其中执行所述I/0虚拟化管理操作包括基于对所述新的1/0端点的添加,向所述一个或多个客户分区分 派资源;基于对所述新的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虚拟化管理操作包括接收对将要从所述一个或多个客户分区中的所选择的客户分区 移除的1/0端点的虚拟功能的选择;从由所述所选择的客户分区的进 一 步使用中,移除所述所选择的 虛拟功能;以及移除用于在所述所选择客户分区中的所选择的虚拟功能的资源。
11. 根据权利要求6所述的方法,其中来自所述HMC的所述输 入是改变与I/O端点的所选择的虛拟功能相关联的网络地址的命令, 以及其中执行所述I/O虚拟化管理操作包括标识与所述所选择的虚拟功能相关联的物理功能;向所述IM P发送管理请求,其中所述管理请求包括用于改变所述所选择的虚拟功能的所述网络地址的地址信息;以及基于在所述管理请求中的所述地址信息,经由与所述物理功能相关联的设备驱动,改变所述所选择的虚拟功能的所述网络地址。
12. 根据权利要求1所述的方法,其中执行所述I/0虚拟化管理 操作包括在所述虚拟中介中,接收来自在所述一个或多个客户分区的客户 分区中的设备驱动的查询虚拟功能错误状态固件调用;从所述虚拟中介中,向所述设备驱动提供标识了 1/0端点的虚拟 功能的错误状态的错误信息;由所述设备驱动登记从所述虚拟中介接收的所述错误信息;向所述数据处理系统的固件发送来自所述设备驱动的复位虚拟功能的请求,来使具有所述错误状态的所述虚拟功能复位;以及 在复位后,配置所述虚拟功能。
13. 根据权利要求1所述的方法,其中执行所述I/0虚拟化管理 操作包括由所述虚拟中介检测客户分区失效;确定是否将执行客户分区重新引导操作;如果不要重新引导所述客户分区,则从所述一个或多个I/O端点 移除与失效的客户分区相关联的虚拟功能资源,以及向自由虚拟功 能资源池添加所述所移除的虚拟功能资源;以及如果将重新引导所述客户分区,则在所述失效的客户分区重新引 导之后,由所述虚拟中介向所述失效的客户分区重新分配所述虚拟 功能资源。
14. 根据权利要求1所述的方法,其中执行所述I/0虚拟化管理 操作包括4全测所述IMP的失效;由所述虚拟中介发起对所述IMP的重新引导;由所述一个或多个客户分区暂停关于与被分配给所述IMP的物 理功能相关联的虚拟功能的固件调用,直到对所述IMP的所述重新 引导完成;以及随着对所述IMP的所述重新引导的完成,由所述一个或多个客 户分区停止对固件调用的暂停。
15. —种数据处理系统,包括 处理器;以及耦合到所述处理器的存储器,其中所述存储器包括当由所述处理 器执行时,引起所述处理器执行下列操作的指令在所述数据处理系统中创建一个或多个客户分区,每个客 户分区具有所述数据处理系统的资源的相关联的部分;对与所述数据处理系统相关联的 一个或多个I/O端点执行 I/O虚拟化管理操作,其中所述I/O虚拟化管理操作运行以配置所述一个或多个I/O端点的至少一个物理功能或虚拟功能;以 及使用与所述IMP相分离的虛拟中介来控制所述I/O虚拟化 管理操作对所述一 个或多个I/O端点的资源的访问,其中所述 虚拟中介防止客户分区访问未被分配给所述客户分区的所述一 个或多个I/0端点的资源。
16. 根据权利要求15所述的系统,其中所述指令进一步引起所 述处理器执行下列操作在所述数据处理系统中创建I/0虚拟化管理分区(IMP),其中 所述IMP对与所述数据处理系统相关联的 一个或多个I/O端点执行 I/O虚拟化管理操作,借以管理所述一个或多个I/O端点的至少 一个 物理功能,以及其中,不允许所述一个或多个客户分区对所述至少 一个物理功能执行I/O虚拟化管理操作。
17. 根据权利要求15所述的系统,其中由所述虛拟中介执行创 建一个或多个客户分区,以及创建所述IMP,以及其中,虚拟中介 是与所述数据处理系统相关联的系统管理器。
18. 根据权利要求17所述的系统,其中向所述系统管理器提供 对用于在所述一个或多个1/0端点中的物理功能和虚拟功能的配置 空间的访问,以及其中,向IMP提供1"又对在所述一个或多个I/0端 点中用于被分配给所述IMP的物理功能的配置空间和在所述一个或 多个I/O端点中用于属于被分配给所述IMP的物理功能的虚拟功能 的配置空间的访问。
19. 根据权利要求18所述的系统,其中所述系统管理器允许由 客户分区来访问在所述一个或多个I/O端点中被分配给所述客户分 区的虚拟功能的配置空间,以及阻止由所述客户分区访问在所述一 个或多个I/O端点中的没有被分配给所述客户分区的虚拟功能的配 置空间。
20. 根据权利要求16所述的系统,其中所述指令进一步引起所 述处理器来从硬件管理控制台(HMC)接收输入,所述硬件管理控制台(HMC)指引所述I/0虚拟化管理操作的执行。
21. 根据权利要求20所述的系统,其中来自所述HMC的所述输 入是发起用于将新的I/O端点添加到所述数据处理系统的热插式操 作的命令,以及其中所述指令引起所述处理器通过下列操作执行所 述I/0虚拟化管理操作基于对所述新的I/O端点的添加,向所述一个或多个客户分区分 派资源;基于对所述新的1/0端点的添加,配置所述IMP;以及 向在所述一个或多个客户分区中的至少一个客户分区动态地添 加所述新的I/O端点的至少一个虚拟功能。
22. 根据权利要求15所述的系统,其中所述指令引起所述处理 器通过下列操作执行所述I/O虚拟化管理操作在所述虚拟中介中,从在所述一个或多个客户分区的客户分区中 的设备驱动中接收查询虚拟功能错误状态固件调用;从所述虛拟中介向所述设备驱动提供标识了 I/O端点的虚拟功 能的错误状态的错误信息;由所述设备驱动登记从所述虚拟中介接收的所述错误信息;向所述数据处理系统的固件发送来自所述设备驱动的复位虚拟 功能的请求,以使具有所述错误状态的所述虛拟功能复位;以及在复位后,配置所述虚拟功能。
23. 根据权利要求15所述的系统,其中所述指令引起所述处理 器通过下列操作来执行所述I/O虚拟化管理操作由所述虚拟中介4全测客户分区失效;确定是否要执行客户分区重新引导操作;如果不用重新引导所述客户分区,则从所述一个或多个1/0端点 中移除与失效的客户分区相关联的虚拟功能的资源,并向自由虚拟 功能资源池添加所述被移除的虚拟功能资源;以及如果将重新引导所述客户分区,则在所述失效的客户分区重新引 导之后,由所述虚拟中介向所述失效的客户分区重新分配所述虚拟功能资源。
24.根据权利要求15所述的系统,其中所述指令引起所述处理 器通过下列操作执行所述1/ O虚拟化管理操作 ;险测所述IMP的失效;由所述虚拟中介发起对所述IMP的重新引导;由所述一个或多个客户分区暂停关于与被分配给所述IMP的物 理功能相关联的虛拟功能的固件调用,直到对所述IMP的所述重新 引导完成;以及随着对所述IMP的所述重新引导的完成,由所述一个或多个客 户分区停止对固件调用的暂停。
全文摘要
一种系统和方法,其提供了用于I/O虚拟化管理分区(IMP)的机制,以便在将多个虚拟功能(VF)分配给客户分区直接用于普通的I/O操作的同时,通过I/O适配器(IOA)的物理功能(PF)而控制支持I/O虚拟化(IOV)的IOA的共享的功能。系统管理器向运行在IMP和客户分区中的代码提供了设备无关的便利。IMP可包括设备专用代码,而无须系统管理器牺牲其大小、鲁棒性和可升级性。系统管理器提供了虚拟中介功能,用于共享和控制IOA的控制功能。
文档编号G06F13/10GK101436165SQ20081017630
公开日2009年5月20日 申请日期2008年11月14日 优先权日2007年11月15日
发明者A·C·布朗, D·M·弗赖穆斯, J·A·帕夫米, R·J·雷西奥, S·M·瑟伯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1