Patent ID: 8141094

Claim:
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.