IBV_MODIFY_SRQ(3)
π IBV_MODIFY_SRQ π
okay bestie, welcome to ibv_modify_srq β a page straight out of the Libibverbs Programmer's Manual, and yes it's giving main character energy π
β¨ NAME β¨
ibv_modify_srq β modify attributes of a shared receive queue (SRQ) π¦
β¨ SYNOPSIS β¨
#include <infiniband/verbs.h>
int ibv_modify_srq(struct ibv_srq *srq,
struct ibv_srq_attr *srq_attr,
int srq_attr_mask);
β¨ DESCRIPTION β¨
so like, ibv_modify_srq() takes your SRQ srq and changes its attributes to whatever's in srq_attr, following the mask srq_attr_mask. it's literally a glow-up for your SRQ π
the srq_attr argument is a ibv_srq_attr struct, as defined in <infiniband/verbs.h> (iconic header, no cap):
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 srq_attr_mask argument says which SRQ attributes you actually wanna modify. it's either 0 or the bitwise OR of one or more of these flags π
IBV_SRQ_MAX_WRβ Resize the SRQ πIBV_SRQ_LIMITβ Set the SRQ limit β
β¨ RETURN VALUE β¨
ibv_modify_srq() returns 0 on success π«Ά or the value of errno on failure (which tells you why it flopped, bestie). π
β¨ NOTES β¨
- If any of the modify attributes is invalid, none of the attributes will be modified. it's all-or-nothing, periodt π
- Not all devices support resizing SRQs. to check if a device supports it, check if the
IBV_DEVICE_SRQ_RESIZEbit is set in the device capabilities flags. π - Modifying the
srq_limitarms the SRQ to produce anIBV_EVENT_SRQ_LIMIT_REACHED"low watermark" asynchronous event once the number of WRs in the SRQ drops belowsrq_limit. so dramatic, we love a low watermark moment π
β¨ SEE ALSO β¨
ibv_query_device(3), ibv_create_srq(3), ibv_destroy_srq(3), ibv_query_srq(3) β the whole friend group, go read them π«Ά
β¨ AUTHORS β¨
Dotan Barak <dotanba@gmail.com> β thank you for your service, king π
and that's the tea, bestie π this page came from libibverbs and it's dated 2006-10-31 β vintage, but the vibes are still immaculate π
π¦ where this page comes from
- alpine 3.24: rdma-core-doc 61.0-r0 Β· GPL-2.0-only OR BSD-2-Clause
- arch rolling: rdma-core 65.0-1 Β· GPL-2.0-or-later OR LicenseRef-OpenIB.org-BSD-MIT AND GPL-2.0-or-later OR LicenseRef-OpenIB.org-BSD-FreeBSD AND GPL-2.0-or-later OR LicenseRef-Intel-BSD-3-Clause AND GPL-2.0-or-later OR LicenseRef-PathScale-BSD-Patent-License AND CC0-1.0 AND MIT AND BSD-2-Clause AND CPL-1.0 OR BSD-2-Clause OR GPL-2.0-or-later
- centos-stream 10: rdma-core-devel 62.0-3.el10 Β· GPLv2 or BSD
- centos-stream 9: rdma-core-devel 61.0-3.el9 Β· GPLv2 or BSD
- centos-stream 9: rdma-core-devel 61.0-3.el9 Β· GPLv2 or BSD
- debian bookworm: libibverbs-dev 44.0-2 Β· BSD-MIT OR GPL-2.0-only
- debian trixie: libibverbs-dev 56.1-1 Β· BSD-MIT OR GPL-2.0-only
- fedora 43: rdma-core-devel 58.0-4.fc43 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 43: rdma-core-devel 58.0-4.fc43 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: rdma-core-devel 61.0-2.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: rdma-core-devel 61.0-2.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: rdma-core-devel 61.1^20260812git975bdaf-1.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: rdma-core-devel 61.1^20260812git975bdaf-1.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- nixos 26.05: rdma-core 62.0
- nixpkgs unstable: rdma-core 65.0
- opensuse-leap 16.0: rdma-core-devel 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: rdma-core-devel 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: rdma-core-devel 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: rdma-core-devel 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- ubuntu jammy: libibverbs-dev 39.0-1 Β· BSD-MIT OR GPL-2.0-only
- ubuntu noble: libibverbs-dev 50.0-2build2 Β· BSD-MIT OR GPL-2.0-only
- ubuntu noble: libibverbs-dev 50.0-2ubuntu0.2 Β· BSD-MIT OR GPL-2.0-only
- ubuntu questing: libibverbs-dev 56.1-1ubuntu1
- ubuntu resolute: libibverbs-dev 61.0-2ubuntu3 Β· BSD-MIT OR GPL-2.0-only
- ubuntu stonking: libibverbs-dev 64.0-1ubuntu1 Β· BSD-MIT OR GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms