Man Linux: Main Page and Category List


       ibv_modify_srq - modify attributes of a shared receive queue (SRQ)


       #include <infiniband/verbs.h>

       int ibv_modify_srq(struct ibv_srq *srq,
                          struct ibv_srq_attr *srq_attr,
                          int srq_attr_mask);


       ibv_modify_srq() modifies the attributes of SRQ srq with the attributes
       in srq_attr according to the mask srq_attr_mask.  The argument srq_attr
       is an ibv_srq_attr struct, as defined in <infiniband/verbs.h>.

       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:

       IBV_SRQ_MAX_WR  Resize the SRQ

       IBV_SRQ_LIMIT  Set the SRQ limit


       ibv_modify_srq() returns 0 on success, or the value of errno on failure
       (which indicates the failure reason).


       If any of the modify attributes is invalid, none of the attributes will
       be modified.

       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.


       ibv_query_device(3),       ibv_create_srq(3),       ibv_destroy_srq(3),


       Dotan Barak <>