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
First Claim
1. A method, in a data processing system, for managing input/output (I/O) virtualization, comprising:
- creating one or more client partitions in the data processing system, each client partition having an associated portion of resources of the data processing system;
creating, in the data processing system, an I/O virtualization management partition (IMP);
identifying, by the IMP, one or more I/O virtualization (IOV) enabled I/O endpoints associated with the data processing system;
assigning, by the IMP, virtual functions of the one or more IOV enabled I/O endpoints to the one or more client partitions;
creating, by a hypervisor of the data processing system, at least one communication structure for communicating between the IMP and the one or more client partitions based on the assignment of virtual functions to the one or more client partitions;
performing, by at least one client partition of the one or more client partitions, virtual function configuration operations with one or more virtual functions of the one or more IOV enabled I/O endpoints using the at least one communication structure;
determining a number of virtual functions to be implemented in the data processing system and to which client partitions of the one or more client partitions to assign each virtual function by;
determining a number of virtual functions supported by each identified IOV enabled I/O endpoint;
presenting information describing the identified IOV enabled I/O endpoints and the number of virtual functions supported by each identified IOV enabled I/O endpoint to a user; and
receiving user input indicating a number of virtual functions to be implemented in the data processing system and to which client partitions of the one or more client partitions to assign each virtual function; and
allocating resources to the one or more client partitions based on the determined number of virtual functions to be implemented and the determination of which client partitions to assign each virtual function.
1 Assignment
0 Petitions
Accused Products
Abstract
Mechanisms to address the situation where an input/output (I/O) fabric is shared by more than one logical partition (LPAR) and where each LPAR can share with the other LPARs an I/O adapter (LOA) are provided. In particular, each LPAR is assigned its own separate address space to access a virtual function (VF) assigned to it such that each LPAR'"'"'s perception is that it has its own independent IOA. Each VF may be shared across multiple LPARs. Facilities are provided for management of the shared resources of the IOA via a Physical Function (PF) of the IOA by assignment of that PF to an I/O Virtualization Management Partition (IMP). The code running in the IMP acts as a virtual intermediary to the VFs for fully managing the VF error handling, VF reset, and configuration operations. The IMP also acts as an interface to the PF for accessing common VF functionality. Furthermore, the functions of resource assignment and management relative to the VFs and the client partitions that use those VFs, which might normally be done by an entity like a hypervisor, are implemented by this IMP.
73 Citations
18 Claims
-
1. A method, in a data processing system, for managing input/output (I/O) virtualization, comprising:
-
creating one or more client partitions in the data processing system, each client partition having an associated portion of resources of the data processing system; creating, in the data processing system, an I/O virtualization management partition (IMP); identifying, by the IMP, one or more I/O virtualization (IOV) enabled I/O endpoints associated with the data processing system; assigning, by the IMP, virtual functions of the one or more IOV enabled I/O endpoints to the one or more client partitions; creating, by a hypervisor of the data processing system, at least one communication structure for communicating between the IMP and the one or more client partitions based on the assignment of virtual functions to the one or more client partitions; performing, by at least one client partition of the one or more client partitions, virtual function configuration operations with one or more virtual functions of the one or more IOV enabled I/O endpoints using the at least one communication structure; determining a number of virtual functions to be implemented in the data processing system and to which client partitions of the one or more client partitions to assign each virtual function by; determining a number of virtual functions supported by each identified IOV enabled I/O endpoint; presenting information describing the identified IOV enabled I/O endpoints and the number of virtual functions supported by each identified IOV enabled I/O endpoint to a user; and receiving user input indicating a number of virtual functions to be implemented in the data processing system and to which client partitions of the one or more client partitions to assign each virtual function; and allocating resources to the one or more client partitions based on the determined number of virtual functions to be implemented and the determination of which client partitions to assign each virtual function. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer program product comprising a computer readable storage medium having a computer readable program stored thereon, wherein the computer readable program, when executed in a data processing system, causes the data processing system to:
-
create one or more client partitions in the data processing system, each client partition having an associated portion of resources of the data processing system; create, in the data processing system, an I/O virtualization management partition (IMP); identify, by the IMP, one or more I/O virtualization (IOV) enabled I/O endpoints associated with the data processing system; assign, by the IMP, virtual functions of the one or more IOV enabled I/O endpoints to the one or more client partitions; create, by a hypervisor of the data processing system, at least one communication structure for communicating between the IMP and the one or more client partitions based on the assignment of virtual functions to the one or more client partitions; and perform, by at least one client partition of the one or more client partitions, virtual function configuration operations with one or more virtual functions of the one or more IOV enabled I/O endpoints using the at least one communication structure; determine a number of virtual functions to be implemented in the data processing system and to which client partitions of the one or more client partitions to assign each virtual function by; determining a number of virtual functions supported by each identified IOV enabled I/O endpoint; presenting information describing the identified IOV enabled I/O endpoints and the number of virtual functions supported by each identified IOV enabled I/O endpoint to a user; and receiving user input indicating a number of virtual functions to be implemented in the data processing system and to which client partitions of the one or more client partitions to assign each virtual function; and allocate resources to the one or more client partitions based on the determined number of virtual functions to be implemented and the determination of which client partitions to assign each virtual function. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A data processing system, comprising:
-
one or more client partitions, each client partition having an associated portion of resources of the data processing system; an I/O virtualization management partition (IMP) in communication with the one or more client partitions; one or more I/O endpoints in communication with the IMP; and at least one communication structure, created by a hypervisor of the data processing system and provided in association with the IMP and the one or more client partitions for communicating between the IMP and the one or more client partitions based on the assignment of virtual functions to the one or more client partitions, wherein; the IMP identifies one or more I/O virtualization (IOV) enabled I/O endpoints associated with the data processing system, the IMP assigns virtual functions of the one or more IOV enabled I/O endpoints to the one or more client partitions, at least one client partition of the one or more client partitions performs virtual function configuration operations with one or more virtual functions of the one or more IOV enabled I/O endpoints using the at least one communication structure, determines a number of virtual functions to be implemented in the data processing system and to which client partitions of the one or more client partitions to assign each virtual function by; determining a number of virtual functions supported by each identified IOV enabled I/O endpoint; presenting information describing the identified IOV enabled I/O endpoints and the number of virtual functions supported by each identified IOV enabled I/O endpoint to a user; and receiving user input indicating a number of virtual functions to be implemented in the data processing system and to which client partitions of the one or more client partitions to assign each virtual function; and allocates resources to the one or more client partitions based on the determined number of virtual functions to be implemented and the determination of which client partitions to assign each virtual function.
-
Specification