Ultra Ethernet: Event Queue
Event Queue Creation (fi_eq_open)
Phase 1: Application – Request & Definition
The purpose of this phase is to specify the type, size, and capabilities of the Event Queue (EQ) your application needs. Event queues are used to report events associated with control operations. They can be linked to memory registration, address vectors, connection management, and fabric- or domain-level events. Reported events are either associated with a requested operation or affiliated with a call that registers for specific types of events, such as listening for connection requests. By preparing a struct fi_eq_attr, the application describes exactly what it needs so the provider can allocate the EQ properly.
In addition to basic properties like .size (number of events the queue can hold) and .wait_obj (how the application waits for events), the .flags field can request specific EQ capabilities. Common flags include:
- FI_WRITE: Requests support for user-inserted events via fi_eq_write(). If this flag is set, the provider must allow the application to invoke fi_eq_write().
- FI_REMOTE_WRITE: Requests support for remote write completions being reported to this EQ.
- FI_RMA: Requests support for Remote Memory Access events (e.g., RMA completions) to be delivered to this EQ.
Flags are encoded as a bitmask, so multiple Continue reading
