Simplified DMA mappings for self-virtualizing input/output device virtual functions
First Claim
1. A method of accessing a self-virtualizing input/output (IO) resource with multiple logical partitions in a data processing system, the method comprising:
- interfacing a logical partition of the multiple logical partitions to an associated adjunct partition through a virtual partition interface, the adjunct partition including a server virtual partition interface device driver configured to interface with a client virtual partition interface device driver in the logical partition and a resource device driver configured to interface with a virtual function or queue pair of the self-virtualizing IO resource, wherein the virtual partition interface interfaces the client virtual partition interface device driver with the server virtual partition interface device driver; and
communicating data between the logical partition and the self-virtualizing IO resource by performing a direct memory access (DMA) operation between a buffer in the logical partition and the self-virtualizing IO resource using first and second translation control entry (TCE) tables, the first TCE table associated with the client virtual partition interface device driver and the second TCE table associated with the resource device driver, wherein the first and second TCE tables each include a same number of TCE entries, and wherein a first TCE entry in the first TCE table that is mapped to the buffer in the logical partition is indexed at a same index in the first TCE table as a second TCE entry in the second TCE table that is used by the resource device driver to initiate the DMA operation between the buffer and the self-virtualizing IO resource.
1 Assignment
0 Petitions
Accused Products
Abstract
Multiple translation control entries (TCEs) at the same indices in multiple, same size TCE tables are mapped to facilitate data communication between a self-virtualizing input/output (IO) resource and a logical partition. First and second TCE tables used by an adjunct partition that interfaces a self-virtualizing IO resource with a logical partition may be identically sized, so that whenever a direct memory access (DMA) operation between the self-virtualizing IO resource and the logical partition is desired the same TCE entries in the first and second TCE tables may be used to perform a redirected DMA operation, and without the need to perform hashing or other mapping algorithms to map to the respective TCE entries in the respective TCE tables.
-
Citations
21 Claims
-
1. A method of accessing a self-virtualizing input/output (IO) resource with multiple logical partitions in a data processing system, the method comprising:
-
interfacing a logical partition of the multiple logical partitions to an associated adjunct partition through a virtual partition interface, the adjunct partition including a server virtual partition interface device driver configured to interface with a client virtual partition interface device driver in the logical partition and a resource device driver configured to interface with a virtual function or queue pair of the self-virtualizing IO resource, wherein the virtual partition interface interfaces the client virtual partition interface device driver with the server virtual partition interface device driver; and communicating data between the logical partition and the self-virtualizing IO resource by performing a direct memory access (DMA) operation between a buffer in the logical partition and the self-virtualizing IO resource using first and second translation control entry (TCE) tables, the first TCE table associated with the client virtual partition interface device driver and the second TCE table associated with the resource device driver, wherein the first and second TCE tables each include a same number of TCE entries, and wherein a first TCE entry in the first TCE table that is mapped to the buffer in the logical partition is indexed at a same index in the first TCE table as a second TCE entry in the second TCE table that is used by the resource device driver to initiate the DMA operation between the buffer and the self-virtualizing IO resource. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus, comprising:
-
at least one processor; and program code configured upon execution by the at least one processor to interface a self-virtualizing input/output (IO) resource with multiple logical partitions in a data processing system, wherein the program code is further configured to; interface a logical partition of the multiple logical partitions to an associated adjunct partition through a virtual partition interface, the adjunct partition including a server virtual partition interface device driver configured to interface with a client virtual partition interface device driver in the logical partition and a resource device driver configured to interface with a virtual function or queue pair of the self-virtualizing IO resource, wherein the virtual partition interface interfaces the client virtual partition interface device driver with the server virtual partition interface device driver; and communicate data between the logical partition and the self-virtualizing IO resource by performing a direct memory access (DMA) operation between a buffer in the logical partition and the self-virtualizing IO resource using first and second translation control entry (TCE) tables, the first TCE table associated with the client virtual partition interface device driver and the second TCE table associated with the resource device driver, wherein the first and second TCE tables each include a same number of TCE entries, and wherein a first TCE entry in the first TCE table that is mapped to the buffer in the logical partition is indexed at a same index in the first TCE table as a second TCE entry in the second TCE table that is used by the resource device driver to initiate the DMA operation between the buffer and the self-virtualizing IO resource. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A program product, comprising:
-
a non-transitory computer readable medium; and program code stored on the computer readable medium and configured upon execution to interface a self-virtualizing input/output (IO) resource with multiple logical partitions in a data processing system, wherein the program code is further configured to; interface a logical partition of the multiple logical partitions to an associated adjunct partition through a virtual partition interface, the adjunct partition including a server virtual partition interface device driver configured to interface with a client virtual partition interface device driver in the logical partition and a resource device driver configured to interface with a virtual function or queue pair of the self-virtualizing IO resource, wherein the virtual partition interface interfaces the client virtual partition interface device driver with the server virtual partition interface device driver; and communicate data between the logical partition and the self-virtualizing IO resource by performing a direct memory access (DMA) operation between a buffer in the logical partition and the self-virtualizing IO resource using first and second translation control entry (TCE) tables, the first TCE table associated with the client virtual partition interface device driver and the second TCE table associated with the resource device driver, wherein the first and second TCE tables each include a same number of TCE entries, and wherein a first TCE entry in the first TCE table that is mapped to the buffer in the logical partition is indexed at a same index in the first TCE table as a second TCE entry in the second TCE table that is used by the resource device driver to initiate the DMA operation between the buffer and the self-virtualizing IO resource.
-
Specification