Infiniband work and completion queue management via head and tail circular buffers with indirect work queue entries
First Claim
1. A method for managing a work request, comprising:
- building a work queue entry for a work queue;
writing the work queue entry in memory; and
writing, in the work queue, a work queue entry pointer that points to the work queue entry.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed computing system having (host and I/O) end nodes, switches, routers, and links interconnecting these components is provided. The end nodes use send and receive queue pairs to transmit and receive messages. The end nodes use completion queues to inform the end user when a message has been completely sent or received and whether an error occurred during the message transmission or reception process. A mechanism implements these queue pairs and completion queues in hardware. A mechanism for controlling the transfer of work requests from the consumer to the CA hardware and work completions from the CA hardware to the consumer using head and tail pointers that reference circular buffers is also provided. The QPs and CQs do not contain Work Queue Entries and Completion Queue Entries respectively, but instead contain references to these entries. This allows them to be efficient and constant in size, while the Work Queue Entries and Completion Queue Entries themselves can vary in size, for example to include a variable number of data segments. Additionally, several mechanisms are provided to improve the overall efficiency of this process under different memory configurations.
70 Citations
33 Claims
-
1. A method for managing a work request, comprising:
-
building a work queue entry for a work queue;
writing the work queue entry in memory; and
writing, in the work queue, a work queue entry pointer that points to the work queue entry. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for managing a work request, comprising:
-
determining a location of a work queue entry pointer;
reading a work queue entry referenced by the work queue entry pointer; and
transmitting a message corresponding to the work queue entry. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. A method for managing a request for work completion information, comprising:
-
reading a completion queue entry pointer;
reading a completion queue entry referenced by the completion queue entry pointer; and
using the completion queue entry to return work completion information. - View Dependent Claims (13, 14)
-
-
15. A computer program product, in a computer readable medium, for managing a work request, comprising:
-
instructions for building a work queue entry for a work queue;
instructions for writing the work queue entry in memory; and
instructions for writing, in the work queue, a work queue entry pointer that points to the work queue entry. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A computer program product, in a computer readable medium, for managing a work request, comprising:
-
instructions for determining a location of a work queue entry pointer;
instructions for reading a work queue entry referenced by the work queue entry pointer; and
instructions for transmitting a message corresponding to the work queue entry. - View Dependent Claims (21, 22, 23, 24, 25)
-
-
26. A computer program product, in a computer readable medium, for managing a request for work completion information, comprising:
-
instructions for reading a completion queue entry pointer;
instructions for reading a completion queue entry referenced by the completion queue entry pointer; and
instructions for using the completion queue entry to return work completion information. - View Dependent Claims (27, 28)
-
-
29. An apparatus for managing a work request, comprising:
-
a channel interface, wherein the channel interface builds a work queue entry for a work queue, writes the work queue entry in memory, and writes in the work queue a work queue entry pointer that points to the work queue entry; and
a host channel adapter coupled to the channel interface, wherein the host channel adapter processes the work queue entry.
-
-
30. An apparatus for managing a work request, comprising:
-
a channel interface, wherein the channel interface includes a work queue; and
a host channel adapter coupled to the channel interface, wherein the host channel adapter determines a location of a work queue entry pointer, reads a work queue entry referenced by the work queue entry pointer, and transmits a message corresponding to the work queue entry. - View Dependent Claims (31, 32)
-
-
33. An apparatus for managing a request for work completion information, comprising:
-
a channel interface, wherein the channel interface includes a completion queue; and
a host channel adapter coupled to the channel interface, wherein the host channel adapter reads a completion queue entry pointer, reads a completion queue entry referenced by the completion queue entry pointer, and uses the completion queue entry to return work completion information.
-
Specification