Provided by: libibverbs-dev_24.0-2_amd64 bug


       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), ibv_query_srq(3)


       Dotan Barak <>