Receive queue device with efficient queue flow control, segment placement and virtualization mechanisms
First Claim
1. A method, in a data processing system, for managing a work queue, comprising:
- receiving a work request;
creating a receive work queue entry in a receive work queue in response to receipt of the work request;
sending a notification to an Internet Protocol Suite Offload Engine (IPSOE) notifying the IPSOE of the creation of the receive work queue entry;
processing a completion queue entry in a completion queue in response to receiving a notification that the completion queue entry has been created by the IPSOE in response to processing of the receive work queue entry; and
monitoring, by an upper level protocol, a number of entries available in the receive work queue to prevent the upper level protocol from overwriting valid receive work queue entries in the receive work queue, wherein the IPSOE monitors a number of entries available in the completion queue to prevent the IPSOE from overwriting valid completion queue entries in the completion queue, and wherein the upper level protocol increases a size of the completion queue by adding entry spaces and notifies the IPSOE of how many entry spaces are added to the completion queue in response to no entry spaces being available in the completion queue.
0 Assignments
0 Petitions
Accused Products
Abstract
A mechanism for offloading the management of receive queues in a split (e.g. split socket, split iSCSI, split DAFS) stack environment, including efficient queue flow control and TCP/IP retransmission support. An Upper Layer Protocol (ULP) creates receive work queues and completion queues that are utilized by an Internet Protocol Suite Offload Engine (IPSOE) and the ULP to transfer information and carry out send operations. As consumers initiate receive operations, receive work queue entries (RWQEs) are created by the ULP and written to the receive work queue (RWQ). The ISPOE is notified of a new entry to the RWQ and it subsequently reads this entry that contains pointers to the data that is to be received. After the data is received, the IPSOE creates a completion queue entry (CQE) that is written into the completion queue (CQ). After the CQE is written, the ULP subsequently processes the entry and removes it from the CQE, freeing up a space in both the RWQ and CQ. The number of entries available in the RWQ are monitored by the ULP so that it does not overwrite any valid entries. Likewise, the IPSOE monitors the number of entries available in the CQ, so as not overwrite the CQ.
-
Citations
15 Claims
-
1. A method, in a data processing system, for managing a work queue, comprising:
-
receiving a work request; creating a receive work queue entry in a receive work queue in response to receipt of the work request; sending a notification to an Internet Protocol Suite Offload Engine (IPSOE) notifying the IPSOE of the creation of the receive work queue entry; processing a completion queue entry in a completion queue in response to receiving a notification that the completion queue entry has been created by the IPSOE in response to processing of the receive work queue entry; and monitoring, by an upper level protocol, a number of entries available in the receive work queue to prevent the upper level protocol from overwriting valid receive work queue entries in the receive work queue, wherein the IPSOE monitors a number of entries available in the completion queue to prevent the IPSOE from overwriting valid completion queue entries in the completion queue, and wherein the upper level protocol increases a size of the completion queue by adding entry spaces and notifies the IPSOE of how many entry spaces are added to the completion queue in response to no entry spaces being available in the completion queue. - View Dependent Claims (2, 3, 4, 5)
-
-
6. An apparatus in a data processing system, for managing a work queue, comprising:
-
means for receiving a work request; means for creating a receive work queue entry in a receive work queue in response to receipt of the work request; means for sending a notification to an Internet Protocol Suite Offload Engine (IPSOE) notifying the IPSOE of the creation of the receive work queue entry; means for processing a completion queue entry in a completion queue in response to receiving a notification that the completion queue entry has been created by the IPSOE in response to processing of the receive work queue entry; and means for monitoring, by an upper level protocol, a number of entries available in the receive work queue to prevent the upper level protocol from overwriting valid receive work queue entries in the receive work queue, wherein the IPSOE monitors a number of entries available in the completion queue to prevent the IPSOE from overwriting valid completion queue entries in the completion queue, and wherein the upper level protocol increases a size of the completion queue by adding entry spaces and notifies the IPSOE of how many entry spaces are added to the completion queue in response to no entry spaces being available in the completion queue. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computer program product in a non-transitory computer readable medium in a data processing system, for managing a work queue, comprising:
-
first instructions for receiving a work request; second instructions for creating a receive work queue entry in a receive work queue in response to receipt of the work request; third instructions for sending a notification to an Internet Protocol Suite Offload Engine (IPSOE) notifying the IPSOE of the creation of the receive work queue entry; fourth instructions for processing a completion queue entry in a completion queue in response to receiving a notification that the completion queue entry has been created by the IPSOE in response to processing of the receive work queue entry; and fifth instructions for monitoring, by an upper level protocol, a number of entries available in the receive work queue to prevent the upper level protocol from overwriting valid receive work queue entries in the receive work queue, wherein the IPSOE monitors a number of entries available in the completion queue to prevent the IPSOE from overwriting valid completion queue entries in the completion queue, and wherein the upper level protocol increases a size of the completion queue by adding entry spaces and notifies the IPSOE of how many entry spaces are added to the completion queue in response to no entry spaces being available in the completion queue. - View Dependent Claims (12, 13, 14, 15)
-
Specification