Module mlx_ethernet::work_queue
source · Expand description
The Work Queue (WQ) contains a contiguous memory buffer used by SW to post I/O requests (WQEs) for HCA execution. A Work Request is posted to the HCA by writing to one or more Work Queue Elements (WQE) of the WQ and ringing the DoorBell, notifying the HCA that request has been posted. A WQ is created for every SQ and RQ and is comprised of WQE Basic Blocks (WQEBBs) which are 64 byte units.
This module defines the context used to initialize a WQ, layout of WQ Doorbell Records, the layout of WQEBBs and related functions.
(PRM Section 8.8: Work Queues)
Structs
- The layout of a doorbell record in memory. A doorbell should be created for each SQ/RQ pair, and its address passed to the HW at time of SQ/RQ creation.
- WQEs are built from multiple segments. In the case of Receive WQEs, there is only the memory pointer data segment
- WQEs are built from multiple segments. In the case of Send WQEs, there are three: