System and method for efficient implementation of a shared receive queue
First Claim
Patent Images
1. A method that facilitates non-sequential posting and retrieving of work queue elements to and from a shared receive queue, the method comprising the computer implemented steps of:
- including, in each one of the work queue elements, a first field for storing a first state indicator that indicates whether the work queue element is in a completed state;
including, in each one of the work queue elements, a second field for storing a second state indicator that indicates whether the work queue element is in an in-processing state;
including, in each one of the work queue elements, a third field for storing a third state indicator that indicates whether the work queue element is in a posted state;
wherein multiple work queue elements are in only one of the completed state, in-processing state, and posted state at a time;
generating, by a consumer, a first work queue element for posting to the shared receive queue, the queue including a plurality of entries;
sequentially traversing and evaluating the plurality of entries until a first entry is located that includes a second work queue element having a first state indicator that indicates that the second work queue element has completed processing; and
responsive to locating the first entry, writing the first work queue element to the first entry.
0 Assignments
0 Petitions
Accused Products
Abstract
A method, computer program product, and a data processing system for posting and retrieving WQEs to a shared receive queue in a manner that alleviates head-of-line blocking issues is provided. The present invention provides a shared receive queue and a posting routine for allowing non-sequential work request postings in the shared receive queue. Additionally, a fetch routine is provided for non-sequential fetching of work queue elements from the shared receive queue.
31 Citations
24 Claims
-
1. A method that facilitates non-sequential posting and retrieving of work queue elements to and from a shared receive queue, the method comprising the computer implemented steps of:
-
including, in each one of the work queue elements, a first field for storing a first state indicator that indicates whether the work queue element is in a completed state; including, in each one of the work queue elements, a second field for storing a second state indicator that indicates whether the work queue element is in an in-processing state; including, in each one of the work queue elements, a third field for storing a third state indicator that indicates whether the work queue element is in a posted state; wherein multiple work queue elements are in only one of the completed state, in-processing state, and posted state at a time; generating, by a consumer, a first work queue element for posting to the shared receive queue, the queue including a plurality of entries; sequentially traversing and evaluating the plurality of entries until a first entry is located that includes a second work queue element having a first state indicator that indicates that the second work queue element has completed processing; and responsive to locating the first entry, writing the first work queue element to the first entry. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer program product, which is stored in a computer recordable-type medium, for facilitating non-sequential posting and retrieving of work queue elements to and from a shared receive queue, the computer program product comprising:
-
instructions for including, in each one of the work queue elements, a first field for storing a first state indicator that indicates whether the work queue element is in a completed state; instructions for including, in each one of the work queue elements, a second field for storing a second state indicator that indicates whether the work queue element is in an in-processing state; instructions for including, in each one of the work queue elements, a third field for storing a third state indicator that indicates whether the work queue element is in a posted state; wherein multiple work queue elements are in only one of the completed state, in-processing state, and posted state at a time; instructions for generating, by a consumer, a first work queue element for posting to the shared receive queue, the queue including a plurality of entries; instructions that sequentially traverse and evaluate entries of the plurality of entries until a first entry is located that includes a second work queue element having a first state indicator that indicates that the second work queue element has completed processing; and instructions that, responsive to locating the first entry, write the first work queue element to the first entry. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A data processing system for facilitating non-sequential posting and retrieving of work queue elements to and from a shared receive queue, comprising:
-
a channel adapter comprising the shared receive queue having a plurality of entries; each one of the work queue elements including a first field for storing a first state indicator that indicates whether the work queue element is in a completed state; each one of the work queue elements including a second field for storing a second state indicator that indicates whether the work queue element is in an in-processing state; each one of the work queue elements including a third field for storing a third state indicator that indicates whether the work queue element is in a posted state; wherein multiple work queue elements are in only one of the completed state, in-processing state, and posted state at a time; a memory that contains a software entity and a set of instructions for writing work queue elements to the shared receive queue; and a processing unit that, responsive to execution of the set of instructions, generates, by a consumer, a first work queue element for posting to the shared receive queue that includes a plurality of entries;
sequentially traverses and evaluates the plurality of entries until a first entry is located that includes a second work queue element having a first state indicator that indicates that the second work queue element has completed processing; and
responsive to locating the first entry, writes the first work queue to the first entry. - View Dependent Claims (20, 21, 22, 23, 24)
-
Specification