5. Supporting Structures#
5.1. cuObjScatterGatherEntry#
typedef struct cuObjScatterGatherEntry {
void* addr;
size_t size;
} cuObjScatterGatherEntry_t;
Fields:
addr: Host memory address.size: Segment size in bytes.
5.2. cuObjScatterGatherEntryWithOffset#
typedef struct cuObjScatterGatherEntryWithOffset {
loff_t offset;
size_t size;
} cuObjScatterGatherEntryWithOffset_t;
Fields:
offset: Offset from the base registered buffer.size: Segment size in bytes.
5.3. cuObjAsyncEvent_t#
typedef struct cuObjAsyncEvent_s {
void* async_handle;
ssize_t status;
} cuObjAsyncEvent_t;
Fields:
async_handle: User handle provided during asynchronous submission.status: Completion status. The field is declared asssize_t, butpoll()stores an enumibv_wc_statusvalue in it.IBV_WC_SUCCESS(0) means success. For nonzero values, interpret the field asibv_wc_status_str((enum ibv_wc_status)event.status).
5.4. cuObjRDMATunableParam#
struct cuObjRDMATunableParam {
int num_dcis;
unsigned cq_depth;
unsigned long dc_key;
int ibv_poll_max_comp_event;
int service_level;
uint8_t timeout;
unsigned hop_limit;
int pkey_index;
int max_wr;
int max_sge;
uint32_t delay_interval;
cuObjDelayMode_t delay_mode;
bool qp_reset_on_failure;
uint8_t retry_cnt;
unsigned traffic_class;
int max_rd_atomic;
};
5.5. cuObjRDMATunable#
cuObjRDMATunable stores cuObjRDMATunableParam values and provides
getters and setters.
Parameter |
Setter |
Getter |
Default |
Valid Values / Current Behavior |
|---|---|---|---|---|
|
|
|
|
Number of channels/DCIs. Must be usable by the RDMA device. Values greater than the device QP limit cause session start failure. |
|
|
|
|
Completion queue depth. |
|
|
|
|
DC key value. |
|
|
|
|
Not used currently. |
|
|
|
|
Service level value. |
|
|
|
|
Timeout value used by the RDMA connection. |
|
|
|
|
Hop limit value. |
|
|
|
|
Partition key index. |
|
|
|
|
Not used currently. |
|
|
|
|
Maximum scatter-gather entries per operation. |
|
|
|
|
Polling delay interval in nanoseconds. |
|
|
|
|
One of the |
|
|
|
|
Enables queue-pair reset after completion failure. |
|
|
|
|
Retry count value. The header documents this as a 3-bit value, 0 through 7. |
|
|
|
|
Values below 256 are applied. Values greater than or equal to 256 are logged as invalid. |
|
|
|
|
|
The setters do not return status values and do not perform full range validation. Configure values that are valid for the RDMA device and workload.