Adaptive low latency receive queues
AssigneeInternational Business Machines Corporation
InventorsDavid Craddock, Thomas A. Gregg, Thomas Schlipf
Life of this patent
Estimating the term…
Abstract
A receive queue provided in a computer system holds work completion information and message data together. An InfiniBand hardware adapter sends a single CQE+message data to the computer system that includes the completion Information and data. This information is sufficient for the computer system to receive and process the data message, thereby providing a highly scalable low latency receiving mechanism.
Claims23
An adapter for processing and sending received low latency data packets to a low latency receive queue and for sending standard data packets for standard processing to a standard latency receive queue, the adapter comprising:
- a processor configured for receiving low latency data packets each having a packet header and payload data, for processing information contained in the packet header to construct completion queue information, for constructing a low latency data message comprising the completion queue information and the payload data, and for sending the constructed data message to a receive queue in a single transfer.
A computer system comprising:
- a memory;
- a processor connected to said memory;
- an adapter slot for coupling a network adapter to the computer system;
- a low latency receive queue for storing low latency data messages each comprising a completion queue element and data which is received by the computer system via the adapter slot from the network adapter;
- and
- the completion queue element comprising a valid bit indicating that the entire completion queue element and data is stored in the receive queue and is visible to the processor,
- wherein the computer system sends receive queue status information to the network adapter for identifying a number of slots available in the receive queue.
A hardware adapter for coupling to a host system and to a network, the hardware adapter comprising:
- a standard latency input buffer for storing standard latency network packets from the network and a low latency virtual lane input buffer for storing low latency network packets from the network, each low latency packet including message data and header data for the adapter to construct a single data message comprising completion queue information and data sufficient for the host system to process the data message,
- wherein a length of the single data message is equivalent to a length of a cache line of the host system.
A non-transitory computer readable medium embodying a program of instructions executable by a computer to perform a method comprising:
- determining if an incoming data packet is a low latency unreliable datagram;
- if the incoming packet is determined to be the low latency unreliable datagram, then receiving the packet in a dedicated low latency input buffer;
- reading a queue pair number in the received packet;
- obtaining queue pair context information corresponding to the queue pair number;
- and
- constructing a completion queue element based on the queue pair context information and on information in a header of the received packet and combining the completion queue element with payload data of the received packet into a current single data message sufficient for the host computer system to complete processing of the data message.
Dependencies are inferred from the claim text.