CN101120315A - 在支持虚拟适配器的物理适配器上的虚拟适配器解构 - Google Patents

在支持虚拟适配器的物理适配器上的虚拟适配器解构 Download PDF

Info

Publication number
CN101120315A
CN101120315A CNA2006800051238A CN200680005123A CN101120315A CN 101120315 A CN101120315 A CN 101120315A CN A2006800051238 A CNA2006800051238 A CN A2006800051238A CN 200680005123 A CN200680005123 A CN 200680005123A CN 101120315 A CN101120315 A CN 101120315A
Authority
CN
China
Prior art keywords
adapter
virtual
pci
virtual adapter
request
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.)
Pending
Application number
CNA2006800051238A
Other languages
English (en)
Inventor
理查德·L.·阿恩德特
吉奥拉·比兰
哈维·G.·基埃尔
瓦蒂姆·马克赫尔瓦克斯
雷纳多·J.·雷西奥
利赫·沙利夫
加亚·斯里克里什南
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 CN101120315A publication Critical patent/CN101120315A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/102Packet switching elements characterised by the switching fabric construction using shared medium, e.g. bus or ring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches

Abstract

提供用于直接破坏与驻留在物理适配器中的一个或者多个虚拟适配器相关联的资源的方法、计算机程序产品和分布数据处理系统。提供用于直接破坏与驻留于物理适配器(例如,PCI、PCI-X或者PCI-E适配器)中的一个或者多个虚拟适配器相关联的资源的机制。

Description

在支持虚拟适配器的物理适配器上的虚拟适配器解构
技术领域
本发明总体来说涉及在主机和输入/输出(I/O)适配器之间的通信协议。更具体地说,本发明提供一种用于对在物理I/O适配器上的资源进行虚拟化的技术实现。尤其,本发明提供一种机制,通过该机制,单个物理I/O适配器,例如,PCI、PCI-X或者PCI-E适配器,可以破坏与驻留在物理适配器内的一个或者多个虚拟适配器相关联的资源。
背景技术
虚拟化就是为真实资源产生替代物。替代物与其真实的对等物具有相同的功能和外部接口,但是在诸如尺寸、性能和成本之类的属性上不同。这些替代物是虚拟资源,而且它们的用户通常不知道替代物的存在。服务器使用两种基本方法来对系统资源进行虚拟化:分区和逻辑分区(LPAR)管理器。分区产生虚拟服务器,作为物理服务器资源的一部分,通常在粗粒的(例如,物理)分配单元(例如,整个处理器及其关联内存和I/O适配器)。LPAR管理器是软件或者固件元件,其能够将所有的服务器资源细粒度地(例如,以单个物理资源的小部分)虚拟化。
在常规数据处理系统中,支持虚拟化的服务器具有两种选择方案用于处理I/O。第一种选择不允许在虚拟服务器之间共享单个物理I/O适配器。第二种选择是在LPAR管理器或另一个中介物中增加功能,从而提供允许多个操作系统共享单个物理适配器所必要的隔离。
第一种选择存在几个问题。一个突出的问题是,昂贵的适配器不能在虚拟服务器之间共享。如果虚拟服务器只需要使用昂贵的适配器的一部分,那么整个适配器将专门用于这个服务器。随着在物理服务器上的虚拟服务器的数目增加,这样导致适配器的利用不足,更重要的是,导致更昂贵的解决方案,因为每个虚拟服务器需要专门用于其上的物理适配器。对于支持许多虚拟服务器的物理服务器,这种选择的另一个突出的问题是,其需要多个适配器插槽,其中,所有的附属硬件(例如,芯片、连接器、线缆等)要求把这些适配器连接到物理服务器。
尽管第二种选择提供在虚拟服务器之间共享适配器的机制,但是该机制必须在每个I/O事务中被调用和执行。由LPAR管理器或其它中介物在每个I/O事务中调用和执行所述共享机制会降低性能。还会导致更昂贵的解决方案,因为客户必须购买更多的硬件,以便补偿用来实现所述共享机制的周期,或者,如果共享机制卸载到了中介物中,则用来补偿所述中介物硬件。
有益的是具有改进的方法、设备和计算机指令,用来直接破坏与驻留于物理适配器(例如,PCI、PCI-X或PCI-E适配器)中的一个或多个虚拟适配器相关联的资源。此外,有益的是使所述机制应用于下述器件:以太网NIC(网络接口控制器)、FC(光纤通道)、HBA(主机总线适配器)、pSCSI(并行SCSI)、HBA、InfiniBand、TCP/IP减负引擎、支持RDMA(远程直接内存访问)的NIC(网络接口控制器)、iSCSI适配器、iSER(用于RDMA的iSCSI扩展)以及支持内存映射的I/O接口的任何其它类型的适配器。
发明内容
本发明提供用于直接破坏与驻留于物理适配器(例如,PCI、PCI-X或者PCI-E适配器)内的一个或者多个虚拟适配器相关联的资源的方法、计算机程序产品和分布数据处理系统。具体来说,本发明涉及用于共享常规的PCI(外围部件互连)I/O适配器、PCI-X I/O适配器、PCI-Express I/O适配器、以及(一般来说)使用内存映射I/O接口用于主机与适配器通信的任何I/O适配器。提供一机制,以便直接破坏与驻留于物理适配器(例如,PCI、PCI-X或PCI-E适配器)中的一个或者多个虚拟适配器相关联的资源。另外,每一个虚拟适配器具有一组相关的主机侧资源(例如,内存地址和中断等级)和适配器侧资源(例如,适配器内存地址和处理队列),并且每一个虚拟适配器隔离访问属于另一虚拟适配器或者物理适配器的主机侧资源和适配器资源。
附图说明
现在仅仅以举例的方式参照附图描述本发明,其中:
图1是根据本发明的优选实施例示出的分布计算机系统的视图;
图2是根据本发明的优选实施例的小主机处理器节点的功能框图;
图3是根据本发明的优选实施例的小集成主机处理器节点的功能框图;
图4是根据本发明的优选实施例的大主机处理器节点的功能框图;
图5是根据本发明的优选实施例示出并行外围计算机接口(PCI)总线协议的元件的视图;
图6是根据本发明的优选实施例示出串联PCI总线协议(PCI-Express或者PCI-E)的元件的视图;
图7是根据本发明的优选实施例示出为了提供虚拟主机访问隔离而设置在主机处理器节点中的I/O虚拟化功能的视图;
图8是根据本发明的优选实施例示出用于PCI总线事务以识别虚拟适配器或者系统映像的控制场的视图;
图9是示出根据本发明的优选实施例必须被虚拟化的适配器资源的视图,以允许:适配器直接访问虚拟主机资源;虚拟主机直接访问适配器资源;以及适配器上的非PCI端口访问适配器或者主机上的资源;
图10是根据本发明的优选实施例示出支持I/O虚拟化的用于管理PCI系列适配器的三个访问控制等级的形成的视图;
图11是示出根据本发明的优选实施例如何通过逻辑分区管理器使与系统映像相关联的虚拟适配器可以使用与系统映像相关联的主机内存的视图;
图12是示出根据本发明的优选实施例PCI系列适配器如何允许逻辑分区管理器将PCI适配器中的内存和系统映像及其关联虚拟适配器相关联的视图;
图13是根据本发明的优选实施例示出用于确定与输入内存地址相关联的虚拟适配器的一种选择方案的视图;
图14是根据本发明的优选实施例示出用于确定与PCI-X或者PCI-E总线事务相关联的虚拟适配器的一种选择方案的视图;
图15是根据本发明的优选实施例示出用于对适配器资源进行虚拟化的虚拟适配器管理方法的视图;以及
图16是概述根据本发明的优选实施例的通过图15所述的虚拟适配器管理方法解构现有的虚拟适配器的范例操作的流程图。
具体实施方式
本发明适用于使用PCI系列I/O适配器直接连接存储装置或者连接网络的任何普通或者特殊的目的主机,其中,网络由终端节点、交换机、路由器和互连这些部件的链路组成。网络链路可以是,例如,光纤通道、以太网、InfiniBand、先进交换互连、或者使用专用协议或者标准协议的专用链路。虽然本发明的实施例示出和描述为利用外围部件互连(PCI)系列适配器,但是,本发明的实施方式并不局限于这种结构,如本领域技术人员所显而易见的那样。本发明的教导可以在支持内存映射输入/输出(MMIO)接口(例如,但不限于,HyperTransport、Rapid I/O、专用MMIO接口)的任何物理适配器或者现在已知的或稍后开发的具有MMIO接口的其他适配器上实施。为了帮助理解本发明的范例目的,提供利用PCI系列适配器的本发明的实施方式。
现在参照附图,尤其,参照图1,根据本发明的优选实施例示出分布计算机系统的视图。图1所示的分布计算机系统采用网络例如网络120的形式,并且仅仅为了范例的目的,提供该分布计算机系统,可以在很多其它类型和结构的计算机系统上实施下面所述的本发明的实施例。两个交换机(或者路由器),即,交换机116和交换机140,示出在网络120内。交换机116通过端口112连接小主机节点100。小主机节点100也包含第二类端口104,该第二类端口连接直接连接存储子系统,例如,直接连接存储器108。
网络120也可以通过端口136连接大主机节点124,该端口136连接交换机140。大主机节点124也可以包含第二类端口128,该第二类端口128连接直接连接存储子系统,例如,直接连接存储器132。
网络120也可以连接小集成主机节点144,该小集成主机节点144通过连接交换机140的端口148连接网络120。小集成主机节点144也可以包含第二类端口152,该第二类端口152连接直接连接存储子系统,例如,直接连接存储器156。
现在转到图2,根据本发明的优选实施例示出小主机节点的功能框图。小主机节点202是主机处理器节点的例子,例如,图1所示的小主机节点100。
在该例子中,图2所示的小主机节点202包括通过链路201互连的两个处理器I/O层次,例如,处理器I/O层次200和203。在图2的范例例子中,处理器I/O层次200包括处理器芯片207,该处理器芯片207包括一个或者多个处理器及其相关高速缓冲器。处理器芯片207通过链路208连接存储器212。在处理器芯片上的一个链路(例如,链路220)连接PCI系列I/O桥228。PCI系列I/O桥228具有一个或者多个PCI系列(PCI、PCI-X、PCI-Express或者任何下一代PCI)链路,用来通过PCI链路(例如,链路232、236和240)连接其它PCI系列I/O桥或者PCI系列I/O适配器,例如,PCI系列适配器244和PCI系列适配器245。PCI系列适配器245也可以用来通过经由交换机或者路由器(例如,交换机或者路由器260)的链路与网络(例如,网络264)连接。PCI系列适配器244可以用来通过链路248与直接连接存储器连接,例如,直接连接存储器252。可以用与就处理器I/O层次200所示出和描述的方式相似的方式构造处理器I/O层次203。
现在参照图3,根据本发明的优选实施例示出小集成主机节点的功能框图。小集成主机节点302是主机处理器节点的例子,例如,图1所述的小集成主机节点144。
在该实例中,小集成主机节点302包括两个处理器I/O层次300和303,这两个处理器I/O层次300和303通过链路301互连。在所图示的实例中,处理器I/O层次300包括处理器芯片304,该处理器芯片304代表一个或者多个处理器和关联高速缓冲器。处理器芯片304通过链路308连接存储器312。在处理器芯片上的一个链路,例如链路330,连接PCI系列适配器,例如,PCI系列适配器345。处理器芯片304具有一个或者多个PCI系列(即,PCI、PCI-X、PCI-Express或者任何下一代PCI)链路,其用来通过PCI链路(例如,链路316、330和324)连接PCI系列I/O桥或者PCI系列I/O适配器,例如,PCI系列适配器344和PCI系列适配器345。PCI系列适配器345也可以用来通过经由交换机或者路由器(例如,交换机或者路由器360)的链路与网络(例如,网络364)连接。PCI系列适配器344可以用来通过链路348与直接连接存储器352连接。
现在转到图4,根据本发明的优选实施例示出大主机节点的功能框图。大主机节点402是主机处理器节点的例子,例如,图1所示的大主机节点124。
在该实例中,大集成主机节点402包括两个处理器I/O层次400和403,这两个处理器I/O层次400和403通过链路401互连。在图4所示的实例中,处理器I/O层次400包括处理器芯片404,该处理器芯片404代表一个或者多个处理器和关联高速缓冲器。处理器芯片404通过链路408连接存储器412。在处理器芯片上的一个链路,例如链路440,连接PCI系列I/O集线器,例如,PCI系列I/O集线器441。PCI系列I/O集线器使用网络442连接PCI系列I/O桥448。即,PCI系列I/O桥448通过链路432连接交换机或者路由器436,并且,交换机或者路由器436通过链路443连接PCI系列I/O集线器441。网络442允许PCI系列I/O集线器和PCI系列I/O桥置于不同的封装中。PCI系列I/O桥448具有一个或者多个PCI系列(即,PCI、PCI-X、PCI-Express或者任何下一代PCI)链路,其用来通过PCI链路(例如,链路444、446和452)连接其它的PCI系列I/O桥或者PCI系列I/O适配器,例如,PCI系列适配器456和PCI系列适配器457。PCI系列适配器456可以用来通过链路460与直接连接存储器476连接。PCI系列适配器457也可以用来通过经由例如交换机或者路由器472的链路468与网络464连接。
接下来转到图5,根据本发明的优选实施例示出对包含在PCI总线事务500和PCI-X总线事务520中的各阶段的图例。PCI总线事务500描述形成通过用于常规PCI的PCI结构传输的信息单元的常规PCI总线事务。PCI-X总线事务520描述形成通过用于PCI-X的PCI结构传输的信息单元的PCI-X总线事务。
PCI总线事务500显示三个阶段:地址阶段508;数据阶段512;以及周转循环516。此外所示出的是对下一个传输504的仲裁,其可以与地址阶段、数据阶段和周转阶段同时发生。对于PCI,使用包含在地址阶段中的地址来将总线事务从适配器发送到主机以及从主机发送到适配器。
PCI-X事务520显示五个阶段:地址阶段528;属性阶段532;响应阶段560;数据阶段564和周转循环566。此外所示出的是对下一个传输524的仲裁,其可以与地址阶段、属性阶段、响应阶段、数据阶段和周转循环阶段同时发生。与常规PCI相似,PCI-X使用包含在地址阶段中的地址来将总线事务从适配器发送到主机以及从主机发送到适配器。但是,PCI-X增加属性阶段532,该属性阶段532包含限定总线事务请求者的三个字段,即:请求者总线号544、请求者装置号548和请求者功能号552(在本文总称为BDF)。总线事务还包含标记540,该标记相对于在请求者和响应者之间未完成的其它总线事务唯一地识别该特定总线事务。字节计数556包含对正发送的字节的数目的计数。
现在转到图6,根据本发明的优选实施例示出包含在PCI-Express总线事务中的各个阶段的图例。PCI-E总线事务600形成通过用于PCI-E的PCI结构传输的信息单元。
PCI-E总线事务600显示六个阶段:帧阶段608;序列号612;报头664;数据阶段668;循环冗余检查(CRC)672;以及帧阶段680。PCI-E报头664包含在PCI-Express规格中定义的一组字段。请求者标识符(ID)字段628包含限定总线事务请求者的三个字段,即:请求者总线号684、请求者装置号688和请求者功能号692。PCI-E报头还包含标记652,该标记相对于在请求者和响应者之间未完成的其它总线事务唯一地识别该特定总线事务。长度字段644包含对正发送的字节的数目的计数。
现在参照图7,根据本发明的优选实施例示出PCI适配器(例如,PCI系列适配器736)以及在主机硬件(例如,可以具有I/O集线器或者I/O桥的处理器)(例如,主机硬件700)上运行的固件和软件。
图7还示出在主机硬件700上运行的逻辑分区(LPAR)管理器708。LPAR管理器708可以实施为由美国纽约市的InternationalBusiness Machines,Inc.of Armonk制造的Hypervisor。LPAR管理器708可以在固件、软件或者二者的组合上运行。LPAR管理器708宿主两个系统映像(SI)分区,例如,系统映像712和系统映像724(示例性地指定系统映像1和系统映像2)。该系统映像分区可以是在软件上运行的各自操作系统、在软件上运行的特殊目的映像(例如,存储块服务器或者存储文件服务器映像)、或者在固件上运行的特殊目的映像。在这些系统映像上可以运行应用程序,例如,应用程序716、720、728和732(示例性地指定应用程序1A、应用程序2、应用程序1B和应用程序3)。应用程序716和728代表公共应用程序的单独的例子,因此,用相应的标号“1A”和“1B”示例性地指定。在所图示的实例中,应用程序716和720在系统映像712上运行,应用程序728和732在系统映像724上运行。如本文所指,虚拟主机包括系统映像(例如,系统映像712)或者在系统映像中运行的系统映像和应用程序的组合。因此,在图7中示出两个虚拟主机。
PCI系列适配器736包含一组物理适配器配置资源740和物理适配器内存资源744。物理适配器配置资源740和物理适配器内存资源744包含描述PCI系列适配器736可以支持的虚拟适配器的数目和分配给每一个虚拟适配器的物理资源的信息。如本文所指,虚拟适配器是与逻辑分区(例如,系统映像712和在系统映像712上运行的应用程序716及720)相关联的物理适配器资源的子集(例如,物理适配器资源和物理适配器内存的子集)的分配。给LPAR管理器708提供物理配置资源接口738和物理内存配置接口742,以在适配器的初始配置和重配置期间读入和写入物理适配器配置资源和内存空间。通过物理配置资源接口738和物理配置内存接口742,LPAR管理器708创建虚拟适配器,并且分配物理资源给每一个虚拟适配器。LPAR管理器708可以使用一个系统映像(例如,特殊软件或者固件分区)作为主机分区,该主机分区使用物理配置资源接口738和物理配置内存接口742,以执行虚拟适配器初始配置和重配置功能的一部分或者甚至全部。
图7示出配置有两个虚拟适配器的PCI系列适配器736的配置。第一虚拟适配器(指定的虚拟适配器1)包括通过与系统映像712(指定的系统映像1)相关联的LPAR管理器708分配的虚拟适配器资源748和虚拟适配器内存752。类似地,第二虚拟适配器(指定的虚拟适配器2)包括通过LPAR管理器708分配给虚拟适配器2并与另一系统映像724(指定的系统映像2)相关联的虚拟适配器756和虚拟适配器内存760。关于用于连接一个直接连接存储器(例如,图1所示的直接连接存储器108、132或者156)的适配器,虚拟适配器资源的例子可以包括:一关联物理盘列表、一关联逻辑单元号列表和一关联适配器功能列表(例如,不昂贵磁盘冗余阵列(RAID)级别)。关于用于连接网络(例如,图1的网络120)的适配器,虚拟适配器资源的例子可以包括:一关联链路级别标识符列表、一关联网络级别标识符列表、一关联虚拟结构标识符列表(例如,用于以太网结构的虚拟LAN ID、用于光纤通道结构的N-端口ID和用于InfiniBand结构的区分键)、和一关联网络层功能列表(例如,网络卸载服务)。
在LPAR管理器708配置PCI系列适配器736之后,允许每一个系统映像仅仅与通过LPAR管理器708同该系统映像相关联的虚拟适配器通信。如图7(实线)所示,允许系统映像712与虚拟适配器1的虚拟适配器资源748和虚拟适配器内存752直接通信。不允许系统映像712与如图7的虚线所示的虚拟适配器2的虚拟适配器资源756和虚拟适配器内存760直接通信。类似地,允许系统映像724与虚拟适配器2的虚拟适配器资源756和虚拟适配器内存760直接通信,不允许系统映像724与虚拟适配器1的虚拟适配器资源748和虚拟适配器内存752直接通信。
现在参照图8,根据本发明的优选实施例示出在主机节点(例如,图1所示的小主机节点100、大主机节点124或者小集成的主机节点144)内的部件(例如,处理器、I/O集线器或者I/O桥800)的图例,所述主机节点通过PCI-X或者PCI-E链路(例如,PCI-X或者PCI-E链路808)连接PCI系列适配器,例如,PCI系列适配器804。
图8示出在系统映像(例如,系统映像712或者724)或者LPAR管理器708执行PCI-X或者PCI-E总线事务(例如,主机至适配器PCI-X或者PCI-E总线事务812)时,处理器、I/O集线器、或者连接PCI-X或者PCI-E链路808的I/O桥800填入总线号、装置号和在PCI-X或者PCI-E总线事务中的功能号字段,所述链路发送主机至适配器PCI-X或者PCI-E总线事务812。处理器、I/O集线器、或者I/O桥具有两个选择方案用于如何填入这三个字段:对于使用处理器、I/O集线器、或者I/O桥的所有软件部件,可以使用相同的总线号、装置号和功能号;或者,对于使用处理器、I/O集线器、或者I/O桥的每一个软件部件,可以使用不同的总线号、装置号和功能号。该事务的发起者可以是软件部件,例如,系统映像712或者系统映像724(或者,在系统映像上运行的应用程序),或者可以是LPAR管理器708。
如果对于所有的事务发起者,处理器、I/O集线器或者I/O桥800使用相同的总线号、装置号和功能号,则在软件部件发起PCI-X或者PCI-E总线事务(例如,主机至适配器PCI-X或者PCI-E总线事务812)时,处理器、I/O集线器或者I/O桥800将处理器、I/O集线器或者I/O桥的总线号置于PCI-X或者PCI-E总线事务的请求者总线号字段820(例如,图5所示的PCI-X事务的请求者总线号544字段或者图6所示的PCI-E事务的请求者总线号684字段)中。类似地,处理器、I/O集线器或者I/O桥800将处理器、I/O集线器或者I/O桥的装置号置于PCI-E总线事务的请求者装置号824字段,例如,图5所述的请求者装置号548字段或者图6所示的请求者装置号688字段。最后,处理器、I/O集线器或者I/O桥800将处理器、I/O集线器或者I/O桥的功能号置于PCI-X或者PCI-E总线事务的请求者功能号828字段,例如,图5所示的请求者功能号552字段或者图6所示的请求者功能号692字段。处理器、I/O集线器或者I/O桥800也将所述PCI-X或者PCI-E总线事务所作为目标的物理适配器或者虚拟适配器内存地址置于PCI-X或者PCI-E总线事务中,如图8中的适配器资源或者地址816字段所示。
如果对于每一个事务发起者,处理器、I/O集线器或者I/O桥800使用不同的总线号、装置号和功能号,则处理器、I/O集线器或者I/O桥800分配总线号、装置号和功能号给事务发起者。当软件部件发起PCI-X或者PCI-E总线事务(例如,主机至适配器PCI-X或者PCI-E总线事务812)时,处理器、I/O集线器或者I/O桥800将软件部件的总线号置于PCI-X或者PCI-E总线事务的请求者总线号820字段,例如,图5所示的请求者总线号544字段或者图6所示的请求者总线号684字段。类似地,处理器、I/O集线器或者I/O桥800将软件部件的装置号置于PCI-X或者PCI-E总线事务的请求者装置号824字段,例如,图5所示的请求者装置号548字段或者图6所示的请求者装置号688。最后,处理器、I/O集线器或者I/O桥800将软件部件的功能号置于PCI-X或者PCI-E总线事务的功能号828字段,例如,图5所示的请求者功能号552字段或者图6所示的请求者功能号692字段。处理器、I/O集线器或者I/O桥800也将所述PCI-X或者PCI-E总线事务所作为目标的物理适配器或者虚拟适配器内存地址置于PCI-X或者PCI-E总线事务中,如图8中的适配器资源或者地址816字段所示。
图8还示出,当物理适配器或者虚拟适配器806执行PCI-X或者PCI-E总线事务(例如,适配器至主机PCI-X或者PCI-E总线事务832)时,连接PCI-X或者PCI-E链路808的PCI系列适配器(例如,物理系列适配器804)将与发起总线事务的物理适配器或者虚拟适配器相关联的总线号、装置号和功能号置于请求者总线号、装置号和功能号836,840和844字段。显著地,为了支持一个以上的总线号或者装置号,PCI系列适配器804必须支持一个或者多个内部总线(对于PCI-X适配器,参见PCI-X附录至PCI局部总线规格1.0或者1.0a版;对于PCI-E适配器,参见PCI-Express基础规格1.0或者1.0a版,其细节以引用方式并入本文中)。为了执行该功能,LPAR管理器708通过分配总线号、装置号和功能号给物理适配器或者虚拟适配器来将每一个物理适配器或者虚拟适配器与软件部件相关联。当物理适配器或者虚拟适配器发起适配器至主机PCI-X或者PCI-E总线事务时,PCI系列适配器804将物理适配器或者虚拟适配器的总线号放置在PCI-X或者PCI-E总线事务的请求者总线号836字段,例如,图5所示的请求者总线号544字段或者图6所述的请求者总线号684(在图8中示出为适配器总线号836)。类似地,PCI系列适配器804将物理适配器和虚拟适配器的装置号置于PCI-X或者PCI-E总线事务的请求者装置号840字段,例如,图5所示的请求者装置号548字段或者图6所述的请求者装置号688字段(在图8中示出为适配器装置号840)。PCI系列适配器804将物理适配器或者虚拟适配器的功能号置于PCI-X或者PCI-E总线事务的请求者功能号844字段,例如,图5所述的请求者功能号552字段或者图6所示的请求者功能号692字段(在图8中示出为适配器功能号844)。最后,PCI系列适配器804也将通过物理适配器或者虚拟适配器所关联并作为目标的软件部件的内存地址置于PCI-X或者PCI-E总线事务中的主机资源或者地址848字段。
现在参照图9,示出根据本发明的优选实施例描述的具有两个虚拟适配器的PCI适配器的功能框图。范例的PCI系列适配器900配置有两个虚拟适配器916和920(示例性地指定虚拟适配器1和虚拟适配器2)。PCI系列适配器900可以包含一个(或者多个)PCI系列适配器端口(在本文中也称为上游端口),例如,PCI-X或者PCI-E适配器端口912。PCI系列适配器900也可以包含一个(或者多个)装置或者网络端口(在本文中也称为下游端口),例如,物理端口904和物理端口908。
图9也示出在PCI适配器上可以虚拟化的资源类型。可以虚拟化的PCI系列适配器900的资源包括处理队列、地址和配置内存、PCI端口、主机内存管理资源和装置或者网络端口。在所图示的实例中,分配给虚拟适配器916的PCI系列适配器900的虚拟化资源包括,例如,处理队列924、地址和配置内存928、PCI虚拟端口936、主机内存管理资源984(例如,InfiniBand或者iWARP上的内存区域注册和内存窗粘结资源)和虚拟装置或者网络端口,例如,虚拟外部端口932和虚拟外部端口934(更通常称为虚拟端口)。类似地,分配给虚拟适配器920的PCI系列适配器900的虚拟化资源包括,例如,处理队列940、地址和配置内存944、PCI虚拟端口952、主机内存管理资源980和虚拟装置或者网络端口,例如,虚拟外部端口948和虚拟外部端口950。
接下来转到图10,根据本发明的优选实施例示出在PCI系列适配器(例如,图9所示的PCI系列适配器900)上的访问控制等级的功能框图。三个访问等级是超特权物理资源分配等级1000、特权虚拟资源分配等级1008和非特权等级1016。
在超特权物理资源分配等级1000上执行的功能包括,但不限于:PCI系列适配器询问;创建、修改和删除虚拟适配器;提交和检索工作;复位和恢复物理适配器;分配物理资源给虚拟适配器实例。PCI系列适配器询问用来确定(例如)物理适配器类型(例如,光纤通道、以太网、iSCSI、并行SCSI)、在物理适配器上支持的功能和被PCI系列适配器支持的虚拟适配器的数目。LPAR管理器,例如,图7所示的LPAR管理器708,执行与超特权物理资源分配等级1000相关联的物理适配器资源管理1004功能。但是,LPAR管理器可以使用系统映像,例如,I/O主机分区,以执行物理适配器资源管理1004功能。
在特权虚拟资源分配等级1008上执行的功能包括,例如,虚拟适配器询问;分配和初始化虚拟适配器资源;通过虚拟适配器资源提交和检索工作;以及,对于支持卸载服务的虚拟适配器,分配和指定虚拟适配器资源给中间件处理和线程实例。虚拟适配器询问用来确定:虚拟适配器类型(例如,光纤通道、以太网、iSCSI、并行SCSI)和在虚拟适配器上支持的功能。系统映像,例如图7所示的系统映像712,执行与虚拟资源分配等级1008相关联的特权虚拟适配器资源管理1012功能。
最后,在非特权等级1016上执行的功能包括,例如,询问已指定给在非特权等级1016上运行的软件的虚拟适配器资源;以及通过已指定给在非特权等级1016上运行的软件的虚拟适配器资源提交和检索工作。应用程序,例如图7所示的应用程序716,执行与非特权等级1016相关联的虚拟适配器访问库1020功能。
接下来转到图11,根据本发明的优选实施例示出对PCI系列适配器可用的主机内存地址的功能框图。PCI系列适配器1101是如上面图9所述的可以虚拟化资源的PCI系列适配器900的例子。
图11描述四种不同的机制,通过这些机制,LPAR管理器708可以将主机内存与系统映像和虚拟适配器相关联。一旦主机内存与系统映像和虚拟适配器相关联,虚拟适配器就可以执行DMA直接写入和读入主机内存的操作。系统映像1108和1116是系统映像的例子,例如上面就图7所述的系统映像712和724,分别与虚拟适配器1104和1112相关联。虚拟适配器1104和1112是虚拟适配器的例子,例如上面就图9所述的虚拟适配器916和920,包括虚拟适配器资源和虚拟适配器内存的各自分配。
第一种范例机制,即,LPAR管理器708可以用来使主机内存与系统映像和一个或者多个虚拟适配器相关联、并使主机内存可用于系统映像和一个或者多个虚拟适配器,将系统映像关联列表1122写入虚拟适配器的资源。虚拟适配器资源1120包含一PCI总线地址列表,其中,在该列表中的每一个PCI总线地址通过硬件平台与系统映像(SI)页(例如,分配给系统映像1108的SI 1第1页1128到SI 1第N页1136)的起始地址相关联。虚拟适配器资源1120也包含页尺寸,对于该列表中的所有页,页尺寸相等。在起初配置时,并且,在重配置的期间,LPAR管理器708将系统映像关联列表1122装入虚拟适配器资源1120。系统映像关联列表1122限定虚拟适配器1104可以用于DMA读写操作的地址集。在创建系统映像关联列表1122之后,虚拟适配器1104必须验证,通过系统映像1108请求的每一个DMA写或者DMA读被包含在系统映像关联列表1122中的页内。如果通过系统映像1108请求的DMA写或者DMA读被包含在系统映像关联列表1122中的页内,则虚拟适配器1104可以执行操作。否则,禁止虚拟适配器1104执行操作。或者,PCI系列适配器1101可以使用特殊的LPAR管理器式虚拟适配器(而不是虚拟适配器1104)执行检测,以确定通过系统映像1108请求的DMA写或者DMA读是否被包含在系统映像关联列表1122中的页内。以相似的方式,与系统映像1116相关联的虚拟适配器1112验证通过系统映像1116提交的DMA写或读请求。具体来说,虚拟适配器1112通过确定DMA写或读请求是否在与系统映像1116的系统映像页相关联的系统映像关联列表(以与系统映像关联列表1122相似的方式配置)中的页内来对来自系统映像1116的DMA写读请求提供验证。
第二种范例机制,即,LPAR管理器708可以用来使主机内存与系统映像和一个或者多个虚拟适配器相关联、并使主机内存可用于系统映像和一个或者多个虚拟适配器,将起始页地址和页尺寸写入虚拟适配器资源中的系统映像关联列表1122中。例如,虚拟适配器资源1120可以包含单个PCI总线地址,该PCI总线地址通过硬件平台与系统映像页(例如,SI 1第1页1128)的起始地址相关联。在虚拟适配器资源1120中的映像关联列表1122也包含页尺寸。在起初配置时,并且,在重配置期间,LPAR管理器708将页尺寸和起始页地址装入虚拟适配器资源1120中的映像关联列表1122中。映像关联列表1122限虚拟适配器1104可以用于DMA读写操作的地址集。在创建映像关联列表1122之后,虚拟适配器1104验证通过系统映像1108请求的每一个DMA写或者DMA读是否被包含在系统映像关联列表1122中的页内。如果通过系统映像1108请求的每一个DMA写或者DMA读是被包含在系统映像关联列表1122中的页内,则虚拟适配器1104可以执行操作。否则,禁止虚拟适配器执行操作。或者,PCI系列适配器1101可以使用特殊的LPAR管理器式虚拟适配器(而不是虚拟适配器1104)执行检测,以确定通过系统映像1108请求的DMA写或者DMA读是否被包含在系统映像关联列表1122中的页内。以相似的方式,与系统映像1116相关联的虚拟适配器1112可以验证通过系统映像1116提交的DMA写或读请求。具体来说,与系统映像关联列表1122相关联的系统映像管理列表可以与虚拟适配器1112相关联。与虚拟适配器1112相关联的系统映像关联列表装入与虚拟适配器1112相关联的系统映像1116的系统映像页的页尺寸和起始页地址。因此,与虚拟适配器1112相关联的系统映像关联列表提供这样的机制,通过确定DMA写或者读请求是否在与系统映像1116的系统映像页相关联的系统映像关联列表中的页内,验证来自系统映像1116的DMA读写请求。
第三种范例机制,即,LPAR管理器708可以用来使主机内存与系统映像和一个或者多个虚拟适配器相关联、并使主机内存可用于系统映像和一个或者多个虚拟适配器,将系统映像缓冲器关联列表1154写入虚拟适配器的资源中。在图11中,虚拟适配器资源1150包含一PCI总线地址对列表(起始地址和结束地址),其中,通过硬件平台,将该列表中的每一对PCI总线地址与系统映像缓冲器的地址对(起始地址和结束地址)相关联,例如,分配给系统映像1116的SI 2第1缓冲器1166到SI 1第N缓冲器1180。在起初配置时,并且,在重配置期间,LPAR管理器708将系统映像缓冲器关联列表1154装入虚拟适配器资源1150。该系统映像缓冲器关联列表1154限定虚拟适配器1112可以用于DMA读写操作的地址集。在创建系统映像缓冲器关联列表1154之后,虚拟适配器1112验证通过系统映像1116请求的每一个DMA写或者DMA读被包含在系统映像缓冲器关联列表1154的缓冲器内。如果通过系统映像1116请求的DMA写或者DMA读被包含在系统映像缓冲器关联列表1154的缓冲器内,则虚拟适配器1112可以执行操作。否则,禁止虚拟适配器1112执行操作。或者,PCI系列适配器1101可以使用特殊的LPAR管理器式虚拟适配器(而不是虚拟适配器1112)执行检测,以确定通过系统映像1116请求的DMA写操作或者DMA读操作是否被包含在系统映像缓冲器关联列表1154的缓冲器内。以相似的方式,与系统映像1108相关联的虚拟适配器1104可以验证通过系统映像1108提交的DMA写或者读请求。具体来说,以与上面对系统映像1116和虚拟适配器1112所述的方式相似的方式,虚拟适配器1104通过确定通过系统映像1108请求的DMZ写或者读被包含在缓冲器管理列表的缓冲器内,对来自系统映像1108的DMA读写请求提供验证,所述缓冲器关联列表包含与分配给系统映像1108的缓冲器的系统映像缓冲器起始和结束地址对相关联的PCI总线起始和结束地址对。
第四种范例机制,即,LPAR管理器708可以用来使主机内存与系统映像和一个或者多个虚拟适配器相关联、并使主机内存可用于系统映像和一个或者多个虚拟适配器,将系统映像缓冲器关联列表1154中的单个起始和结束地址写入虚拟适配器的资源中。在图11中,虚拟适配器资源1150包含单对PCI总线起始和结束地址,该单对PCI总线起始和结束地址通过硬件平台与同系统映像缓冲器(例如,SI 2第1缓冲器1166)相关联的地址对(起始和结束地址)相关联。在起初配置时,并且,在重配置期间,LPAR管理器708将SI 2第1缓冲器1166的起始和结束地址装入虚拟适配器资源1150中的系统映像缓冲器关联列表1154中。然后,系统映像缓冲器关联列表1154限定虚拟适配器1112可以用于DMA读写操作的地址集。在创建系统映像缓冲器关联列表1154之后,虚拟适配器1112确认通过系统映像1116请求的每一个DMA写或者DMA读是否被包含在系统映像缓冲器关联列表1154内。如果通过系统映像1116请求的DMA写或者DMA读被包含在系统映像缓冲器关联列表1154内,则虚拟适配器1112可以执行操作。否则,禁止虚拟适配器1112执行操作。或者,PCI系列适配器1101可以使用特殊的、LPAR管理器式虚拟适配器(而不是虚拟适配器1150)执行检测,以确定通过系统映像1116请求的DMA写或者DMA读是否被包含在页系统映像缓冲器关联列表1154内。以相似的方式,与系统映像1108相关联的虚拟适配器1104可以验证通过系统映像1108提交的DMA写或者读请求。具体来说,以与上面对系统映像1116和虚拟适配器1112描述的方式相似的方式,虚拟适配器1104通过确定通过系统映像1108请求的DMA写或者读是否被包含在缓冲器关联列表中的缓冲器内来对来自系统映像1108的DMA读写请求提供验证,所述缓冲器关联列表包含与分配给系统映像1108的系统映像缓冲器起始和结束地址相关联的单个PCI总线起始和结束地址。
接着转到图12,根据本发明的优选实施例示出对系统映像可用的配置有内存地址的PCI系列适配器的功能框图。
图12示出四种不同的机制,通过这些机制,LPAR管理器可以将PCI系列适配器内存与虚拟适配器(例如,虚拟适配器1204)和系统映像(例如,系统映像1208)相关联。一旦PCI系列适配器与系统映像和虚拟适配器相关联,然后系统映像就可以执行直接到PCI系列适配器内存的内存映射I/O读写操作(即,存储和装入)。
在图11和图12所示的系统映像和虚拟适配器配置之间存在明显的不同之处。在图11所示的配置中,PCI系列适配器1101仅仅保持一主机地址列表,所述主机地址不具有与它们相关联的任何局部内存。如果PCI系列适配器支持直通通信,则到达外部端口的数据可以直接流过PCI系列适配器,并且通过DMA写直接传输到这些主机地址。类似地,如果PCI系列适配器支持直通通信,则来自这些主机地址可以直接流过PCI系列适配器,并且从外部端口传输出去。因此,图11所示的PCI系列适配器1101不包含局部适配器内存,因此,不能发起DMA操作。另一方面,图12所示的PCI系列适配器1201具有与所述主机内存地址列表相关联的局部适配器内存。PCI系列适配器1201可以发起(例如)从其局部内存到主机内存的DMA写或者从主机内存到其局部内存的DMA读。类似地,主机可以发起(例如)从其局部内存到PCI系列适配器内存的内存映射I/O写或者从PCI系列适配器内存到主机局部内存的内存映射I/O读。
第一种机制和第二种机制,即,LPAR管理器708可以用来使PCI系列适配器内存与系统映像和虚拟适配器相关联、并使PCI系列适配器内存可用于系统映像和虚拟适配器,将页尺寸和一页(第一种机制)或者多页(第二种机制)的起始地址写入PCI系列适配器的物理适配器内存转换表格1290中。在这种情况下,所有的页都具有相同的尺寸。例如,图12示出页集,所述页在系统映像1208和虚拟适配器1204之间映射。具体来说,将系统映像1208的SI 1第1页1224至SI 1第N页1242映射(通过互连箭头示例性地示出)到物理适配器1201局部内存的虚拟适配器内存页1224-1232。对于系统映像1208,在该列表中的所有页1224-1242具有相同的尺寸。在起初配置时,在重配置期间,LPAR管理器708用页尺寸和一页或者多页的起始地址装入PCI系列适配器的物理适配器内存转换表格1290。然后,物理适配器内存转换表格1290可以限定虚拟适配器1204可以用于DMA读写操作的地址集。在创建物理适配器内存转换表格1290之后,PCI系列适配器1201(或者虚拟适配器1204)验证通过系统映像1208请求的每一个DMA写或者DMA读是否被包含在物理适配器内存转换表格1290中并与虚拟适配器1204相关联。如果系统映像1208请求的DMA写或者DMA读被包含在物理适配器内存转换表格1290中并与虚拟适配器1204相关联,则虚拟适配器1204可以执行操作。否则,禁止虚拟适配器1204执行操作。物理适配器内存转换表格1290也限定系统映像1208可以用于内存映射I/O(MMIO)读写操作的地址集。在创建物理适配器内存转换表格1290之后,PCI系列适配器1201(或者虚拟适配器1204)验证通过系统映像1208请求的内存映射I/O写或者读是否被包含在物理适配器内存转换表格1290中并与虚拟适配器1204相关联。如果通过系统映像1208请求的MMIO写或者MMIO读被包含在物理适配器内存转换表格1290中并与虚拟适配器1204相关联,则虚拟适配器1204可以执行操作。否则,禁止虚拟适配器1204执行操作。应该理解,以与PCI系列适配器1201(或者虚拟适配器1212)验证通过系统映像1216请求的DMA操作和MMIO操作的方式相似的方式,配置其它系统映像和关联虚拟适配器,例如,系统映像1216和虚拟适配器1212。
第三种机制和第四种机制,即,LPAR管理器708可以用来使PCI系列适配器内存与系统映像和虚拟适配器相关联、并使PCI系列适配器内存可用于系统映像和虚拟适配器,将一个(第三种机制)或者多个(第四种机制)缓冲器起始和结束地址(或者,起始地址和长度)写入PCI系列适配器的物理适配器内存转换表格1290中。在这种情况下,缓冲器可以具有不同的尺寸。例如,图12示出不同尺寸的一组缓冲器,所述缓冲器在系统映像1216和虚拟适配器1212之间映射。具体来说,系统映像1216的SI 2第1缓冲器1244至SI 2第N缓冲器1248映射到虚拟适配器1212的虚拟适配器缓冲器1258-1274。关于系统映像1216,在该列表中的缓冲器具有不同的尺寸。在起初配置时,并且,在重配置期间,LPAR管理器708将一页或者多页的起始和结束地址(或者起始地址和长度)装入PCI系列适配器的物理适配器内存转换表格1290。然后,物理适配器内存转换表格1290限定虚拟适配器1212可以用于DMA读写操作的地址集。在创建物理适配器内存转换表格1290之后,PCI系列适配器1201(虚拟适配器1212)验证通过系统映像1216请求的每一个DMA写或者DMA读是否被包含在物理适配器内存转换表格1290中并与虚拟适配器1212相关联。如果通过系统映像1216请求的DMA写或者DMA读被包含在物理适配器内存转换表格1290中并与虚拟适配器1212相关联,则虚拟适配器1212执行操作。否则,禁止虚拟适配器1212执行操作。物理适配器内存转换表格1290也限定系统映像1216可以用于内存映射I/O(MMIO)读写操作的地址集。在创建物理适配器内存转换表格1290之后,PCI系列适配器1201(虚拟适配器1212)验证通过系统映像1216请求的MMIO写或者读是否被包含在物理适配器内存转换表格1290中并与虚拟适配器1212相关联。如果通过系统映像1216请求的MMIO写或者读被包含在物理适配器内存转换表格1290中并与虚拟适配器1212相关联,则虚拟适配器1212可以执行操作。否则,禁止虚拟适配器1212执行操作。应该理解,以与PCI系列适配器1201(或者虚拟适配器1204)验证通过系统映像1216请求的DMA操作和MMIO操作的方式相似的方式,配置其它系统映像和关联虚拟适配器,例如,系统映像1208和关联虚拟适配器1204。
接下来,转到图13,根据本发明的优选实施例示出PCI系列适配器和物理地址内存转换表格(例如,缓冲器表格或者页表格)的功能框图。
图13也示出如何可以使用在输PCI总线事务1304中引用的地址来查询与内存地址相关联的虚拟适配器资源(包括映射到主机地址的局部PCI系列适配器内存地址)(例如,虚拟适配器资源1398或者虚拟适配器1394资源)的四种机制。
第一机制是,将输入PCI总线事务1304的内存地址与缓冲器表格1390中的高地址1316和低地址1320中的每一行比较。如果输入PCI总线事务1304具有低于高地址1316单元的内容并高于低地址1320单元的内容的地址,则输入PCI总线事务1304在与相应的虚拟适配器相关联的高地址和低地址单元之内。在这种情况下,允许输入PCI总线事务1304在匹配的虚拟适配器上执行。或者,如果输入PCI总线事务1304具有不在高地址1316单元的内容和低地址1320单元的内容之间的地址,则禁止完成或者处理输入PCI总线事务1304。第二种机制仅仅允许在每一个虚拟适配器的缓冲器表格1390中的单个输入。
第三种机制是,将输入PCI总线事务1304的内存地址与每一行页起始地址1322和每一行页起始地址1332加上页表格1392中的页尺寸比较。如果输入PCI总线事务1304具有高于或者等于页起始地址1322单元的内容并低于页起始地址1322单元加上页尺寸的地址,则输入PCI总线事务1304在与虚拟适配器相关联的页内。因此,允许输入PCI总线事务1304在匹配的虚拟适配器上执行。或者,如果输入PCI总线事务1304具有不在页起始地址1322单元的内容和页起始地址1322单元加上页尺寸之内的地址,则禁止完成输入PCI总线事务1304。第四种机制仅仅允许在每一个虚拟适配器的页表格1392中的单个输入。
接下来,参照图14,根据本发明的优选实施例示出PCI系列适配器和物理地址内存转换表格(例如,缓冲器表格、页表格或者间接局部地址表格)的功能框图。
图14也示出如何使用在输入PCI总线事务1404中引用的请求者总线号(例如,主机总线号1408)、请求者装置号(例如,主机装置号1412)和请求者功能号(例如,主机功能号1416)来给缓冲器表格1498、页表格1494或者间接局部地址表格1464编索引的几种机制。缓冲器表格1498代表图13所示的缓冲器表格1390。页表格1490代表图13所示的页表格1392。局部地址表格1464包含局部PCI系列适配器内存地址,局部PCI系列适配器内存地址引用缓冲器表格(例如,缓冲器表格1438)或者页表格(例如,页表格1434),所述表格仅仅包含映射到同一虚拟适配器上的主机内存地址。
在输入PCI总线事务1404中引用的请求这总线号(例如,主机总线号1408)、请求者装置号(例如,主机装置号1412)和请求者功能号(例如,主机功能号1416)提供由主机LPAR管理器建立的内存地址映射之外的附加检查。
接下来,转到图15,根据本发明的优选实施例示出虚拟适配器等级管理方法。在该方法中,物理或者虚拟主机创建一个或者多个虚拟适配器(例如,虚拟适配器1514),每一个包含在物理适配器(例如,PCI适配器1532)的范围内的资源集。每一个虚拟适配器与主机侧系统映像相关联。虚拟适配器包含物理适配器的资源集(或者虚拟化的或者分区的)。通过限定虚拟适配器实体,通过指导对相应的虚拟适配器的操作,可以联合地操作与系统映像相关联的所有虚拟资源。例如,通过执行将相应的虚拟适配器作为目标的功能,可以创建、破坏和修改虚拟适配器(以及,所有包含的虚拟资源)。另外,虚拟适配器管理方法允许虚拟适配器的所有资源用与虚拟适配器相关联的单个标识符(例如,总线号、装置号和功能号)识别。与虚拟适配器1514相关联的资源集可以包括,例如:处理队列和关联资源1504;用于在PCI物理适配器1532上包含的一个或者多个适配器PCI端口1528的适配器PCI端口1528;与在适配器PCI端口1528上的一个可能的地址相关联的PCI虚拟端口1506;用于每一个下游物理端口的一个或者多个下游物理端口1518和1522;与在物理端口1518和1522上的一个可能的地址相关联的下游虚拟端口1508和1510;以及一个或者多个地址转换和保护表格(ATPT)1512。如本文所指的虚拟端口包括帮助从输入/输出适配器的一个或者多个资源接收数据、并发送数据给输入/输出适配器的一个或者多个资源的软件实体。虚拟端口与在输入/输出适配器上部署的端口相关联或者被映射到其上。例如,虚拟端口可以与适配器PCI端口相关联,通过该适配器PCI端口所述输入/输出适配器与连接到外围或者网络的适配器上的主机或者物理端口连接。虚拟端口具有关联标识符(例如,地址、指针)或者用于引用所述虚拟适配器的另一合适的标识符。单个端口,例如,在输入/输出适配器上的PCI端口或者物理端口可以具有多个与其相关联的虚拟端口。另外,虚拟端口优选配置成表现其所映射的物理端口的一种或者多种特性。
在实体(例如,系统映像或者应用程序)使用虚拟适配器执行输入/输出操作时,随后该虚拟适配器可以被破坏,以防止残余数据在系统分区之间迁移,例如,从一个系统映像到另一个系统映像。例如,假设在输入/输出事务期间以及在该事务完成之后第一系统映像访问虚拟适配器,然后,在该虚拟适配器被破坏时该系统映像终止。虚拟适配器的解构包括解除分配给该虚拟适配器的资源。然后,所解除的资源可以稍后分配给随后初始化的虚拟适配器。为了防止数据在系统分区之间迁移,在虚拟适配器破坏操作期间,被虚拟适配器资源维持的任何数据从其清除。有利地,在创建虚拟适配器的过程中促进了系统映像数据隔离,该虚拟适配器的创建使用先前分配给后来被破坏的另一个虚拟适配器的虚拟适配器资源。
接着,参照图16,根据本发明的优选实施例示出分配给物理适配器的一个或者多个虚拟适配器的范例虚拟适配器破坏操作的流程图。所述的范例虚拟适配器破坏操作在使用上面图15所述的虚拟适配器管理技术的物理适配器上执行。
通过用户管理接口或者自动的脚本/工作流,调用破坏一个或者所有的虚拟适配器的请求。在破坏请求中所引用的虚拟适配器可以通过各种属性或者标识符中的任何一个限定。表A总结可用于引用破坏请求中的一个或者多个虚拟适配器的范例属性。
表A
属性 类型 描述
下游虚拟ID 可选的 与被复位的虚拟适配器相关联的下游网络ID:-对于光纤通道,N-端口ID;-对于以太网,MAC地址;-对于以太网VLAN,VLAN ID;-对于IP,IP地址;-对于SCSI主机,发起者ID;-对于SCSI目标,目标ID。
虚拟适配器的总线/装置/功能号 可选的 仅仅用于PCI-X和PCI-E适配器。与被复位的虚拟适配器相关联的PCI总线号、装置号和功能号(总线/装置/功能号#)
用于虚拟适配器的MSI等级 可选的 对于能够支持消息信号中断(MSI)的适配器,与被复位的虚拟适配器相关联的消息信令中断。
虚拟适配器ID 可选的 与被复位的虚拟适配器相关联的虚拟适配器ID。
LPAR管理器使用物理适配器的内存管理接口(即,用于虚拟适配器配置管理的内存映射I/O地址)来请求物理适配器破坏一个或者多个虚拟适配器(步骤1602)。该请求可以直接从LPAR管理器传送,或者,另一可选的方式是,可以通过代表LPAR管理的中介物(例如,系统映像)发送。表A所述的一个或者多个属性或者合适的替代物可以被包含在传送给所述物理适配器的请求中,以引用要破坏的虚拟适配器。
所述物理适配器进行检查,以知道所述请求是否用于解构所有的虚拟适配器(步骤1604)。即,所述物理适配器进行检查,以确定破坏请求是否是用于物理破坏的请求。如果所述请求是物理破坏请求,物理适配器破坏所有的虚拟适配器(步骤1606)。例如,物理适配器可以复位所有的虚拟适配器,并且通过释放与虚拟适配器相关联的所有资源而破坏它们。虚拟适配器破坏操作然后返回所述操作结果到LPAR管理器,即:如果虚拟适配器成功地被破坏,确定虚拟适配器破坏;或者,另一可选的方式是,如果由于一定原因而虚拟适配器不能被破坏,出错代码(步骤1616)。
再次返回到步骤1604,在虚拟适配器破坏请求不是物理破坏请求的情况,虚拟适配器破坏操作继续确定所述破坏请求是否是正常的虚拟适配器虚拟破坏请求(步骤1608)。正常的虚拟适配器破坏是在虚拟适配器上执行的破坏操作,其允许在虚拟适配器上未完成的操作在解构虚拟适配器之前完成。异常的或者强迫的虚拟适配器破坏是这样的虚拟适配器破坏操作,其不管在虚拟资源上是否有未完成的工作或者未执行或未决,该虚拟适配器操作也执行虚拟适配器解构。在由于错误条件而没有成功地执行正常的破坏请求时,可以(例如)执行异常的破坏请求。如果虚拟适配器破坏请求不是正常的破坏请求,则虚拟适配器破坏操作进行破坏现有的虚拟适配器(步骤1612),例如,通过立即释放与在虚拟适配器破坏请求中所引用的虚拟适配器相关联的所有资源。
再次返回到步骤1608,在虚拟适配器破坏请求被识别为正常的虚拟适配器破坏请求的情况,物理适配器评价对于在虚拟适配器破坏请求中引用的虚拟适配器任何I/O事务是否未完成的(步骤1610)。如果确定没有I/O事务用于所述破坏请求所引用的虚拟适配器,则物理适配器进行破坏在根据步骤1612的破坏请求中引用的虚拟适配器。
再次返回到步骤1610,如果确定任何未完成的I/O事务用于所述虚拟适配器,则所述虚拟适配器破坏操作等待所确定的未完成的I/O事务直到成功完成或者超时(步骤1614)。然后,根据步骤1612,虚拟适配器破坏操作进行破坏现有的虚拟适配器。在所述物理适配器破坏所述虚拟适配器并释放与所破坏的虚拟适配器相关联的资源之后,根据步骤1616,所述物理适配器将操作的结果返回到LPAR管理器。

Claims (20)

1.一种破坏在逻辑分区数据处理系统中的虚拟适配器的方法,该方法包括下述步骤:
调用一请求以破坏分配给物理适配器的至少一个虚拟适配器;
传送所述请求给所述物理适配器;以及
响应于通过所述物理适配器接收所述请求,释放分配给所述物理适配器上的所述虚拟适配器的资源,其中在释放所述资源时清除所述资源中的任何数据。
2.根据权利要求1所述的方法,其中通过与逻辑分区管理器相连接的用户管理接口执行所述调用步骤。
3.根据权利要求1所述的方法,其中所述调用步骤还包括:
通过与所述物理适配器连接的逻辑分区管理器,请求所述物理适配器通过所述物理适配器的内存管理接口破坏所述至少一个虚拟适配器。
4.根据权利要求1所述的方法,其中所述物理适配器包括外围部件互连系列适配器。
5.根据权利要求1所述的方法,其中所述至少一个虚拟适配器包括多个虚拟适配器,该方法还包括:
识别所述请求作为物理虚拟适配器破坏请求,其中释放所述资源包括释放所述多个虚拟适配器中的每一个的相应资源。
6.根据权利要求1所述的方法,其中所述至少一个虚拟适配器包括第一虚拟适配器,该方法还包括:
识别所述请求作为虚拟破坏请求,其中释放所述资源包括释放所述第一虚拟适配器的资源。
7.根据权利要求1所述的方法,其中所述请求包括识别所要破坏的所述至少一个虚拟适配器之一的属性。
8.根据权利要求1所述的方法,其中所述资源包括虚拟适配器资源和虚拟适配器内存,以及其中所述虚拟适配器内存从所述物理适配器的配置内存中被分配。
9.一种用于破坏在逻辑分区数据处理系统中的虚拟适配器的计算机程序产品,该计算机程序产品包括:
第一指令,其用于接收破坏分配在物理适配器上的至少一个虚拟适配器的请求;
第二指令,其传送所述请求给所述物理适配器;以及
第三指令,其响应于通过所述物理适配器接收所述请求而释放分配所述至少一个虚拟适配器的资源,其中在释放所述资源时清除在所述资源中保持的任何数据。
10.根据权利要求9所述的计算机程序产品,还包括:
第四指令,其通过与逻辑分区管理器相连接的用户管理接口调用所述请求;
11.根据权利要求9所述的计算机程序产品,其中所述至少一个虚拟适配器包括多个虚拟适配器,所述计算机程序产品还包括:
第四指令,其识别所述请求作为物理虚拟适配器破坏请求,其中释放所述资源包括释放所述多个虚拟适配器中的每一个的相应资源。
12.根据权利要求9所述的计算机程序产品,其中所述至少一个虚拟适配器包括第一虚拟适配器,所述计算机程序产品还包括:
第四指令,其识别所述请求作为虚拟破坏请求,其中释放所述资源包括释放所述第一虚拟适配器的资源。
13.根据权利要求9所述的计算机程序产品,其中所述请求包括识别所要破坏的所述至少一个虚拟适配器的属性。
14.根据权利要求9所述的计算机程序产品,其中所述资源包括虚拟适配器资源和虚拟适配器内存,其中所述虚拟适配器内存从所述物理适配器的配置内存中被分配。
15.一种逻辑分区数据处理系统,包括:
物理适配器,其具有多个被分配的虚拟适配器;
内存,其包含多个系统映像,每一个系统映像分别与所述多个虚拟适配器之一相关联;
存储器,其包含作为一组指令集的逻辑分区管理器;以及
处理器,响应于所述指令的执行,该处理器产生一个请求以破坏分配在所述物理适配器上的多个虚拟适配器的至少一个虚拟适配器,并且传输所述请求给所述物理适配器,其中所述物理适配器释放分配给所述虚拟适配器的资源,其中在释放所述资源时清除所述资源中的任何数据。
16.根据权利要求15所述的数据处理系统,其中所述存储器包括系统固件。
17.根据权利要求15所述的数据处理系统,其中所述物理适配器包括外围部件互连系列适配器。
18.根据权利要求15所述的数据处理系统,其中所述物理适配器识别所述请求为物理虚拟适配器破坏请求,并且释放所述多个虚拟适配器中的每一个的相应资源。
19.根据权利要求15所述的数据处理系统,其中所述物理适配器识别所述请求为虚拟破坏请求,并且释放与在所述虚拟破坏请求中引用的虚拟适配器相关联的资源。
20.根据权利要求19所述的数据处理系统,其中,所述物理适配器识别用于所述虚拟适配器的未完成的输入/输出事务,并且其中在完成所述未完成的输入/输出事务或所述未完成的输入/输出事务超时之后,所述物理适配器释放所述资源。
CNA2006800051238A 2005-02-25 2006-02-22 在支持虚拟适配器的物理适配器上的虚拟适配器解构 Pending CN101120315A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/065,818 2005-02-25
US11/065,818 US7480742B2 (en) 2005-02-25 2005-02-25 Method for virtual adapter destruction on a physical adapter that supports virtual adapters

Publications (1)

Publication Number Publication Date
CN101120315A true CN101120315A (zh) 2008-02-06

Family

ID=36128478

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006800051238A Pending CN101120315A (zh) 2005-02-25 2006-02-22 在支持虚拟适配器的物理适配器上的虚拟适配器解构

Country Status (5)

Country Link
US (2) US7480742B2 (zh)
EP (1) EP1851627B1 (zh)
CN (1) CN101120315A (zh)
TW (1) TWI357561B (zh)
WO (1) WO2006089914A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699389A (zh) * 2013-12-30 2014-04-02 北京大学 一种基于编译选项的Linux内核模块关系提取方法

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7237139B2 (en) * 2003-08-07 2007-06-26 International Business Machines Corporation Services heuristics for computer adapter placement in logical partitioning operations
US7694298B2 (en) * 2004-12-10 2010-04-06 Intel Corporation Method and apparatus for providing virtual server blades
US7398328B2 (en) * 2005-02-25 2008-07-08 International Business Machines Corporation Native virtualization on a partially trusted adapter using PCI host bus, device, and function number for identification
US7398337B2 (en) * 2005-02-25 2008-07-08 International Business Machines Corporation Association of host translations that are associated to an access control level on a PCI bridge that supports virtualization
US7308551B2 (en) * 2005-02-25 2007-12-11 International Business Machines Corporation System and method for managing metrics table per virtual port in a logically partitioned data processing system
US7496790B2 (en) * 2005-02-25 2009-02-24 International Business Machines Corporation Method, apparatus, and computer program product for coordinating error reporting and reset utilizing an I/O adapter that supports virtualization
US20060212870A1 (en) * 2005-02-25 2006-09-21 International Business Machines Corporation Association of memory access through protection attributes that are associated to an access control level on a PCI adapter that supports virtualization
US7376770B2 (en) * 2005-02-25 2008-05-20 International Business Machines Corporation System and method for virtual adapter resource allocation matrix that defines the amount of resources of a physical I/O adapter
US7475166B2 (en) 2005-02-28 2009-01-06 International Business Machines Corporation Method and system for fully trusted adapter validation of addresses referenced in a virtual host transfer request
US7492723B2 (en) * 2005-07-07 2009-02-17 International Business Machines Corporation Mechanism to virtualize all address spaces in shared I/O fabrics
US7496045B2 (en) * 2005-07-28 2009-02-24 International Business Machines Corporation Broadcast of shared I/O fabric error messages in a multi-host environment to all affected root nodes
US7474623B2 (en) 2005-10-27 2009-01-06 International Business Machines Corporation Method of routing I/O adapter error messages in a multi-host environment
US7363404B2 (en) * 2005-10-27 2008-04-22 International Business Machines Corporation Creation and management of destination ID routing structures in multi-host PCI topologies
US7631050B2 (en) 2005-10-27 2009-12-08 International Business Machines Corporation Method for confirming identity of a master node selected to control I/O fabric configuration in a multi-host environment
US7395367B2 (en) 2005-10-27 2008-07-01 International Business Machines Corporation Method using a master node to control I/O fabric configuration in a multi-host environment
US7430630B2 (en) 2005-10-27 2008-09-30 International Business Machines Corporation Routing mechanism in PCI multi-host topologies using destination ID field
US20070136458A1 (en) * 2005-12-12 2007-06-14 Boyd William T Creation and management of ATPT in switches of multi-host PCI topologies
US20070165596A1 (en) * 2006-01-18 2007-07-19 Boyd William T Creation and management of routing table for PCI bus address based routing with integrated DID
US7707465B2 (en) 2006-01-26 2010-04-27 International Business Machines Corporation Routing of shared I/O fabric error messages in a multi-host environment to a master control root node
US7380046B2 (en) 2006-02-07 2008-05-27 International Business Machines Corporation Method, apparatus, and computer program product for routing packets utilizing a unique identifier, included within a standard address, that identifies the destination host computer system
US7484029B2 (en) 2006-02-09 2009-01-27 International Business Machines Corporation Method, apparatus, and computer usable program code for migrating virtual adapters from source physical adapters to destination physical adapters
US7571273B2 (en) * 2006-12-06 2009-08-04 International Business Machines Corporation Bus/device/function translation within and routing of communications packets in a PCI switched-fabric in a multi-host environment utilizing multiple root switches
US7929565B2 (en) * 2007-12-12 2011-04-19 Dell Products L.P. Ethernet switching of PCI express packets
US8156211B2 (en) * 2008-02-26 2012-04-10 Sap Ag Transitioning from dynamic cluster management to virtualized cluster management
US7886021B2 (en) * 2008-04-28 2011-02-08 Oracle America, Inc. System and method for programmatic management of distributed computing resources
GB2460014B (en) 2008-04-28 2011-11-23 Virtensys Ltd Method of processing data packets
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
US8065454B1 (en) 2009-08-20 2011-11-22 Qlogic, Corporation System and method for mapping functions to and from network devices using configuration compatible with an adapter by remapping plurality of logical ports of adapter
US8468551B2 (en) * 2010-06-30 2013-06-18 International Business Machines Corporation Hypervisor-based data transfer
US8195854B1 (en) * 2011-04-14 2012-06-05 Lsi Corporation Method and mechanism to provide high availability storage solution by load balancing and fault tolerance support in the storage controller cards and HBAs
JP5699886B2 (ja) * 2011-09-29 2015-04-15 富士通株式会社 仮想計算機制御装置および仮想計算機制御プログラム
US9354933B2 (en) 2011-10-31 2016-05-31 Intel Corporation Remote direct memory access adapter state migration in a virtual environment
US9256559B2 (en) 2013-08-19 2016-02-09 International Business Machines Corporation Function transfer using virtualized mapping
KR102398213B1 (ko) 2015-03-09 2022-05-17 삼성전자주식회사 저장 장치, 그것을 포함하는 호스트 시스템, 및 그것의 맵 테이블 업데이트 방법

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2100540A1 (en) * 1992-10-19 1994-04-20 Jonel George System and method for performing resource reconfiguration in a computer system
US6111894A (en) 1997-08-26 2000-08-29 International Business Machines Corporation Hardware interface between a switch adapter and a communications subsystem in a data processing system
US6134641A (en) 1998-03-20 2000-10-17 Vsli Technology, Inc. Method of and system for allowing a computer system to access cacheable memory in a non-cacheable manner
US6453392B1 (en) 1998-11-10 2002-09-17 International Business Machines Corporation Method of and apparatus for sharing dedicated devices between virtual machine guests
US6704284B1 (en) 1999-05-10 2004-03-09 3Com Corporation Management system and method for monitoring stress in a network
US6369822B1 (en) * 1999-08-12 2002-04-09 Creative Technology Ltd. Audio-driven visual representations
US6629157B1 (en) 2000-01-04 2003-09-30 National Semiconductor Corporation System and method for virtualizing the configuration space of PCI devices in a processing system
US6460170B1 (en) 2000-04-29 2002-10-01 Hewlett Packard Company Connection block for interfacing a plurality of printed circuit boards
US6823404B2 (en) 2000-06-08 2004-11-23 International Business Machines Corporation DMA windowing in an LPAR environment using device arbitration level to allow multiple IOAs per terminal bridge
US6629162B1 (en) 2000-06-08 2003-09-30 International Business Machines Corporation System, method, and product in a logically partitioned system for prohibiting I/O adapters from accessing memory assigned to other partitions during DMA
US20020085493A1 (en) 2000-12-19 2002-07-04 Rick Pekkala Method and apparatus for over-advertising infiniband buffering resources
JP4214682B2 (ja) 2001-01-24 2009-01-28 株式会社日立製作所 計算機およびその入出力手段
US6665759B2 (en) 2001-03-01 2003-12-16 International Business Machines Corporation Method and apparatus to implement logical partitioning of PCI I/O slots
US6567897B2 (en) 2001-03-01 2003-05-20 International Business Machines Corporation Virtualized NVRAM access methods to provide NVRAM CHRP regions for logical partitions through hypervisor system calls
US20020129172A1 (en) 2001-03-08 2002-09-12 International Business Machines Corporation Inter-partition message passing method, system and program product for a shared I/O driver
US6816895B2 (en) * 2001-03-26 2004-11-09 Motorola, Inc. Updating the capability negotiation information of a mobile station with an editing application downloaded from a service provider
US6662289B1 (en) 2001-05-15 2003-12-09 Hewlett-Packard Development Company, Lp. Method and apparatus for direct conveyance of physical addresses from user level code to peripheral devices in virtual memory systems
US6823418B2 (en) 2001-06-29 2004-11-23 Intel Corporation Virtual PCI device apparatus and method
US6839892B2 (en) 2001-07-12 2005-01-04 International Business Machines Corporation Operating system debugger extensions for hypervisor debugging
US7093024B2 (en) 2001-09-27 2006-08-15 International Business Machines Corporation End node partitioning using virtualization
US6880021B2 (en) 2001-09-28 2005-04-12 International Business Machines Corporation Intelligent interrupt with hypervisor collaboration
US7194616B2 (en) * 2001-10-27 2007-03-20 International Business Machines Corporation Flexible temporary capacity upgrade/downgrade in a computer system without involvement of the operating system
US20030110205A1 (en) 2001-12-07 2003-06-12 Leith Johnson Virtualized resources in a partitionable server
US6804741B2 (en) 2002-01-16 2004-10-12 Hewlett-Packard Development Company, L.P. Coherent memory mapping tables for host I/O bridge
US6795078B2 (en) * 2002-01-31 2004-09-21 Sun Microsystems, Inc. Parallel read with source-clear operation
US6725284B2 (en) 2002-04-25 2004-04-20 International Business Machines Corporation Logical partition hosted virtual input/output using shared translation control entries
US6941436B2 (en) * 2002-05-09 2005-09-06 International Business Machines Corporation Method and apparatus for managing memory blocks in a logical partitioned data processing system
US20030236852A1 (en) 2002-06-20 2003-12-25 International Business Machines Corporation Sharing network adapter among multiple logical partitions in a data processing system
US7007183B2 (en) * 2002-12-09 2006-02-28 International Business Machines Corporation Power conservation by turning off power supply to unallocated resources in partitioned data processing systems
JP4123942B2 (ja) 2003-01-14 2008-07-23 株式会社日立製作所 情報処理装置
US7664909B2 (en) * 2003-04-18 2010-02-16 Nextio, Inc. Method and apparatus for a shared I/O serial ATA controller
JP4256693B2 (ja) * 2003-02-18 2009-04-22 株式会社日立製作所 計算機システム、i/oデバイス及びi/oデバイスの仮想共有方法
US7283473B2 (en) 2003-04-10 2007-10-16 International Business Machines Corporation Apparatus, system and method for providing multiple logical channel adapters within a single physical channel adapter in a system area network
US20050044301A1 (en) * 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
US8776050B2 (en) 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US7913226B2 (en) 2003-10-01 2011-03-22 Hewlett-Packard Development Company, L.P. Interposing a virtual machine monitor and devirtualizing computer hardware at runtime
JP2005115506A (ja) 2003-10-06 2005-04-28 Hitachi Ltd ストレージシステム
JP2005122640A (ja) 2003-10-20 2005-05-12 Hitachi Ltd サーバシステム及びi/oスロット共有方法。
US7437738B2 (en) 2003-11-12 2008-10-14 Intel Corporation Method, system, and program for interfacing with a network adaptor supporting a plurality of devices
JP4516306B2 (ja) 2003-11-28 2010-08-04 株式会社日立製作所 ストレージネットワークの性能情報を収集する方法
JP4333370B2 (ja) * 2004-01-08 2009-09-16 株式会社日立製作所 データ処理システム
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
JP4343760B2 (ja) 2004-04-28 2009-10-14 株式会社日立製作所 ネットワークプロトコル処理装置
US20060069828A1 (en) 2004-06-30 2006-03-30 Goldsmith Michael A Sharing a physical device among multiple clients
KR20060021055A (ko) 2004-09-02 2006-03-07 삼성전자주식회사 액정 표시 장치, 액정 표시 장치용 구동 장치 및 방법
US7434180B2 (en) 2004-11-23 2008-10-07 Lsi Corporation Virtual data representation through selective bidirectional translation
US7694298B2 (en) 2004-12-10 2010-04-06 Intel Corporation Method and apparatus for providing virtual server blades
US7565463B2 (en) 2005-04-22 2009-07-21 Sun Microsystems, Inc. Scalable routing and addressing
US7478178B2 (en) 2005-04-22 2009-01-13 Sun Microsystems, Inc. Virtualization for device sharing
US7620741B2 (en) 2005-04-22 2009-11-17 Sun Microsystems, Inc. Proxy-based device sharing
US7574536B2 (en) 2005-04-22 2009-08-11 Sun Microsystems, Inc. Routing direct memory access requests using doorbell addresses
US7613864B2 (en) 2005-04-22 2009-11-03 Sun Microsystems, Inc. Device sharing
US8223745B2 (en) 2005-04-22 2012-07-17 Oracle America, Inc. Adding packet routing information without ECRC recalculation
US7293129B2 (en) 2005-04-22 2007-11-06 Sun Microsystems, Inc. Flexible routing and addressing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103699389A (zh) * 2013-12-30 2014-04-02 北京大学 一种基于编译选项的Linux内核模块关系提取方法
CN103699389B (zh) * 2013-12-30 2016-11-16 北京大学 一种基于编译选项的Linux内核模块关系提取方法

Also Published As

Publication number Publication date
WO2006089914A1 (en) 2006-08-31
US7480742B2 (en) 2009-01-20
US7577764B2 (en) 2009-08-18
TW200705188A (en) 2007-02-01
US20060224790A1 (en) 2006-10-05
US20080163236A1 (en) 2008-07-03
TWI357561B (en) 2012-02-01
EP1851627A1 (en) 2007-11-07
EP1851627B1 (en) 2014-07-30

Similar Documents

Publication Publication Date Title
CN101120315A (zh) 在支持虚拟适配器的物理适配器上的虚拟适配器解构
CN101124541A (zh) 修改逻辑分区数据处理系统中的虚拟适配器资源
US7653801B2 (en) System and method for managing metrics table per virtual port in a logically partitioned data processing system
US7546386B2 (en) Method for virtual resource initialization on a physical adapter that supports virtual resources
US7543084B2 (en) Method for destroying virtual resources in a logically partitioned data processing system
US7386637B2 (en) System, method, and computer program product for a fully trusted adapter validation of incoming memory mapped I/O operations on a physical adapter that supports virtual adapters or virtual resources
US7464191B2 (en) System and method for host initialization for an adapter that supports virtualization
US7779182B2 (en) System for fully trusted adapter validation of addresses referenced in a virtual host transfer request
US7685321B2 (en) Native virtualization on a partially trusted adapter using PCI host bus, device, and function number for identification
US8028105B2 (en) System and method for virtual adapter resource allocation matrix that defines the amount of resources of a physical I/O adapter
US20060195618A1 (en) Data processing system, method, and computer program product for creation and initialization of a virtual adapter on a physical adapter that supports virtual adapter level virtualization
US20060195848A1 (en) System and method of virtual resource modification on a physical adapter that supports virtual resources
US20080181234A1 (en) System and method for providing quality of service in a virtual adapter
US7395367B2 (en) Method using a master node to control I/O fabric configuration in a multi-host environment
US20060195623A1 (en) Native virtualization on a partially trusted adapter using PCI host memory mapped input/output memory address for identification
US7941577B2 (en) Association of host translations that are associated to an access control level on a PCI bridge that supports virtualization
US20060195617A1 (en) Method and system for native virtualization on a partially trusted adapter using adapter bus, device and function number for identification
CN1983185A (zh) 在操作系统实例中共享输入/输出适配器的方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20080206