#include <infiniband/verbs.h> int ibv_modify_srq(struct ibv_srq *srq, struct ibv_srq_attr *srq_attr, int srq_attr_mask);
struct ibv_srq_attr { uint32_t max_wr; /* maximum number of outstanding work requests (WRs) in the SRQ */ uint32_t max_sge; /* number of scatter elements per WR (irrelevant for ibv_modify_srq) */ uint32_t srq_limit; /* the limit value of the SRQ */ };
The argument srq_attr_mask specifies the SRQ attributes to be modified. The argument is either 0 or the bitwise OR of one or more of the following flags:
Not all devices support resizing SRQs. To check if a device supports it, check if the IBV_DEVICE_SRQ_RESIZE bit is set in the device capabilities flags.
Modifying the srq_limit arms the SRQ to produce an IBV_EVENT_SRQ_LIMIT_REACHED "low watermark" asynchronous event once the number of WRs in the SRQ drops below srq_limit.