Method and apparatus to implement logical partitioning of PCI I/O slots
First Claim
1. A system for enforcing logical partitioning of input/output slots within a logically partitioned data processing system, the system comprising:
- said logically partitioned system including a hypervisor that permits simultaneous execution of independent operating system images in the logically partitioned system by creating and enforcing partitioning of a logically partitioned platform that includes processors, memory, and input/output slots, said hypervisor which receives non-direct-meniory-access requests for access to input/output slots, determines a partition identifier of a requesting device that generated a request, and uses said partition identifier to prohibits devices within one logical partition from accessing the input/output slots assigned to a different logical partition;
at least one DMA address checking component which receives requests, determines whether said requests are direct-memory-access requests for access to said input/output slots, prohibits non-direct-memory-access request from reaching a primary bus coupled to said input/output slots, and prohibits requests for addresses not within the same logical partition as the requesting device from being completed; and
said hypervisor, for processing said non-direct-memory access requests for access to said input/output slots and said DMA address checking component for processing said direct-memory-access requests for access to said input/output slots, said hypervisor and said DMA address checking component being separate devices.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, system, and computer program product for enforcing logical partitioning of input/output slots within a data processing system is provided. In one embodiment, the system includes a hypervisor and at least one DMA address checking component. The hypervisor receives non-direct-memory-access requests for access to input/output slots and prohibits devices within one logical partition from accessing the input/output slots assigned to a different logical partition. The DMA address checking component receives direct-memory-access requests and prohibits requests for addresses not within the same logical partition as the requesting device from being completed. Requests with addresses corresponding to the same logical partition as the requesting device are placed on the primary PCI bus by the DMA address checking component for delivery to the system memory.
-
Citations
19 Claims
-
1. A system for enforcing logical partitioning of input/output slots within a logically partitioned data processing system, the system comprising:
-
said logically partitioned system including a hypervisor that permits simultaneous execution of independent operating system images in the logically partitioned system by creating and enforcing partitioning of a logically partitioned platform that includes processors, memory, and input/output slots, said hypervisor which receives non-direct-meniory-access requests for access to input/output slots, determines a partition identifier of a requesting device that generated a request, and uses said partition identifier to prohibits devices within one logical partition from accessing the input/output slots assigned to a different logical partition;
at least one DMA address checking component which receives requests, determines whether said requests are direct-memory-access requests for access to said input/output slots, prohibits non-direct-memory-access request from reaching a primary bus coupled to said input/output slots, and prohibits requests for addresses not within the same logical partition as the requesting device from being completed; and
said hypervisor, for processing said non-direct-memory access requests for access to said input/output slots and said DMA address checking component for processing said direct-memory-access requests for access to said input/output slots, said hypervisor and said DMA address checking component being separate devices. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for enforcing logical partitioning of direct memory access addresses within a logically partitioned data processing system, the method comprising:
-
said logically partitioned system including a hypervisor that permits simultaneous execution of independent operating system images in the logically partitioned system by creating and enforcing partitioning of a logically partitioned platform that includes processors, memory, and input/output slots, receiving a request within said hypervisor from a requesting device to access an input/output slot address;
determining, by said hypervisor, a partition identifier of said requesting device;
using, by said hypervisor, said partition identifier to prohibit devices within one logical partition from accessing the input/output slots assigned to a different logical partition;
responsive to a determination that the request is a direct memory access operation, determining, by a DMA address checking component, whether the address is assigned to the same partition as the requesting device;
responsive to a determination that the address is assigned to a different partition as the requesting device, denying by said DMA address checking component, access to the address; and
processing non-direct-memory access requests by said hypervisor and processing direct memory access requests by said DMA address checking component. - View Dependent Claims (9, 10, 11, 12, 13)
responsive to a determination that the address belongs to the same partition as the requesting device, forwarding the request to a system memory.
-
-
10. The method as recited in claim 8, further comprising:
responsive to a determination that the request is not a direct memory access operation, rejecting the operation.
-
11. The method as recited in claim 8, wherein the requesting device is a peripheral component interconnect master agent.
-
12. The method as recited in claim 10, further comprising:
responsive to a determination by the hypervisor that the address is assigned to a different partition from that to which the requesting device is assigned, denying the request.
-
13. The method as recited in claim 10, further comprising:
responsive to a determination by the hypervisor that the address is assigned to the same partition as that to which the requesting device is assigned, allowing the request to proceed.
-
14. A computer program product in a computer readable media for use in a logically partitioned data processing system for enforcing logical partitioning of direct memory access addresses within the data processing system, the computer program product comprising:
-
said logically partitioned system including a hypervisor that permits simultaneous execution of independent operating system images in the logically partitioned system by creating and enforcing partitioning of a logically partitioned platform that includes processors, memory, and input/output slots, instructions for receiving a request within said hypervisor from a requesting device to access an input/output slot address;
instructions for determining, by said hypervisor, a partition identifier of said requesting device;
instructions for using, by said hypervisor, said partition identifier to prohibit devices within one logical partition from accessing the input/output slots assigned to a different logical partition;
instructions, responsive to a determination that the request is a direct memory access operation, for determining, by a DMA address checking component, whether the address is assigned to the same partition as the requesting device;
instructions, responsive to a determination that the address is assigned to a different partition as the requesting device, for denying, by said DMA address checking component access to the address; and
instructions for processing non-direct-memory-access requests by said hypervisor and for processing direct-memory-access-requests by said DMA address checking component. - View Dependent Claims (15, 16, 17, 18, 19)
instructions, responsive to a determination that the address belongs to the same partition as the requesting device, for forwarding the request to a system memory.
-
-
16. The computer program product as recited in claim 14, further comprising:
instructions, responsive to a determination that the request is not a direct memory access operation, for rejecting the request.
-
17. The computer program product as recited in claim 14, wherein the requesting device is a peripheral component interconnect master agent.
-
18. The computer program product as recited in claim 16, further comprising:
instructions, responsive to a determination by the hypervisor that the address is assigned to a different partition from that to which the requesting device is assigned, for denying the request.
-
19. The computer program product as recited in claim 16, further comprising:
instructions, responsive to a determination by the hypervisor that the address is assigned to the same partition as that to which the requesting device is assigned, for allowing the request to proceed.
Specification