Association of memory access through protection attributes that are associated to an access control level on a PCI adapter that supports virtualization
First Claim
1. A method in a logical partitioned data processing system that includes a plurality of different logical partitions for dynamically sharing adapter resources among a plurality of operating system instances, wherein each one of the plurality of operating system instances is included in a different one of the plurality of different logical partitions, comprising:
- locating, by a hypervisor, available resources in a peripheral computer interface input/output adapter, the available resources comprising resources that have not been allocated;
allocating, by the hypervisor, a first part of the available adapter resources in the adapter to a first one of the plurality of operating system instances;
allocating, by the hypervisor, a second part of the available adapter resources in the adapter to a second one of the plurality of operating system instances;
notifying the adapter, by the hypervisor, of the adapter resource allocation to the first one of the plurality of operating system instances;
updating, by the adapter, an internal structure of the adapter to reflect the allocation;
wherein a resource context of the internal structure of the adapter includes a plurality of fields, wherein each one of the plurality of fields defines a mapping of an address of the first part of the available adapter resources to a permitted accessing address range, and wherein each one of the plurality of fields includes an access permission attribute for the permitted accessing address range defined in the one of the plurality of fields;
wherein the access permission attribute identifies an allowed type of access;
wherein the resource context can only be accessed via an address space that has been allocated to the adapter, wherein the resource context is stored outside of the adapter; and
wherein the adapter is accessed using the address space.
0 Assignments
0 Petitions
Accused Products
Abstract
A method, system, and computer program product for sharing adapter resources among multiple operating system instances. The present invention provides a mechanism for dynamically allocating virtualized I/O adapter resources. The present invention separates the operation of adapter resource allocation from adapter resource management. Protection attributes within the adapter resource context are used to allow the adapter to enforce access control over the adapter resources. The hypervisor allocates an available adapter resource to a given partition. The adapter is notified of the allocation, and the adapter updates its internal structure to reflect the allocation. The hypervisor may revoke ownership of and reassign adapter resources to another OS instance. In this manner, the allocation described above allows for the simple reassignment of resources from one partition to another.
82 Citations
20 Claims
-
1. A method in a logical partitioned data processing system that includes a plurality of different logical partitions for dynamically sharing adapter resources among a plurality of operating system instances, wherein each one of the plurality of operating system instances is included in a different one of the plurality of different logical partitions, comprising:
-
locating, by a hypervisor, available resources in a peripheral computer interface input/output adapter, the available resources comprising resources that have not been allocated; allocating, by the hypervisor, a first part of the available adapter resources in the adapter to a first one of the plurality of operating system instances; allocating, by the hypervisor, a second part of the available adapter resources in the adapter to a second one of the plurality of operating system instances; notifying the adapter, by the hypervisor, of the adapter resource allocation to the first one of the plurality of operating system instances; updating, by the adapter, an internal structure of the adapter to reflect the allocation; wherein a resource context of the internal structure of the adapter includes a plurality of fields, wherein each one of the plurality of fields defines a mapping of an address of the first part of the available adapter resources to a permitted accessing address range, and wherein each one of the plurality of fields includes an access permission attribute for the permitted accessing address range defined in the one of the plurality of fields; wherein the access permission attribute identifies an allowed type of access; wherein the resource context can only be accessed via an address space that has been allocated to the adapter, wherein the resource context is stored outside of the adapter; and wherein the adapter is accessed using the address space. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A logical partitioned data processing system that includes a plurality of different logical partitions for dynamically sharing adapter resources among a plurality of operating system instances, wherein each one of the plurality of operating system instances is included in a different one of the plurality of different logical partitions, comprising:
-
a hypervisor, wherein the hypervisor is used to track allocated adapter resources and perform adapter resource allocation; and an adapter; wherein the hypervisor locates available resources in a peripheral computer interface input/output adapter, the available resources comprising resources that have not been allocated, allocates a first part of the available adapter resources in the adapter to a first operating system instance, allocates a second part of the available adapter resources in the adapter to a second one of the plurality of operating system instance, and notifies the adapter of the adapter resource allocation to the first operating system instance; wherein the adapter updates an internal structure of the adapter to reflect the allocation; wherein a resource context of the internal structure includes a plurality of fields, wherein each one of the plurality of fields defines a mapping of an address of the first part of the available adapter resources to a permitted accessing address range, and wherein each one of the plurality of fields includes an access permission attribute for the permitted accessing address range defined in the one of the plurality of fields, and wherein the access permission attribute identifies an allowed type of access; wherein the resource context can only be accessed via an address space that has been allocated to the adapter, wherein the resource context is stored outside of the adapter; and wherein the adapter is accessed using the address space. - View Dependent Claims (13, 14, 15)
-
-
16. A computer program product, stored in a non-transitory computer readable medium, that includes a plurality of different logical partitions for dynamically sharing adapter resources among a plurality of operating system instances, wherein each one of the plurality of operating system instances is included in a different one of the plurality of different logical partitions, said computer program product comprising:
-
first instructions for locating, by a hypervisor, available resources in a peripheral computer interface input/output adapter, the available resources comprising resources that have not been allocated; second instructions for allocating, by the hypervisor, a first part of the available adapter resources in the adapter to a first operating system instance; third instructions for allocating, by the hypervisor, a second part of the available adapter resources in the adapter to a second one of the plurality of operating system instance; fourth instructions for notifying the adapter, by the hypervisor, of the adapter resource allocation to the first operating system instance; and fifth instructions for updating, by the adapter, an internal structure of the adapter to reflect the allocation; wherein a resource context of the internal structure includes a plurality of fields, wherein each one of the plurality of fields defines a mapping of an address of the first part of the available adapter resources to a permitted accessing address range, and wherein each one of the plurality of fields includes an access permission attribute for the permitted accessing address range defined in the one of the plurality of fields, and wherein the access permission attribute identifies an allowed type of access; wherein the resource context can only be accessed via an address space that has been allocated to the adapter, wherein the resource context is stored outside of the adapter; and wherein the adapter is accessed using the address space. - View Dependent Claims (17, 18, 19, 20)
-
Specification