IBV_SRQ_PINGPONG(1)
π ibv_srq_pingpong π
okay bestie, welcome to the manual page for ibv_srq_pingpong β it's a USER COMMAND and it lives in section 1, and honestly? it's giving "tiny chaos gremlin that tests your InfiniBand fabric." π¦
β¨ NAME β¨
ibv_srq_pingpong β simple InfiniBand shared receive queue test
πΈ SYNOPSIS πΈ
ibv_srq_pingpong [-p port] [-d device] [-i ib port] [-s size] [-m size]
[-q num QPs] [-r rx depth] [-n iters] [-l sl] [-e] [-g gid index]
HOSTNAME
ibv_srq_pingpong [-p port] [-d device] [-i ib port] [-s size] [-m size]
[-q num QPs] [-r rx depth] [-n iters] [-l sl] [-e] [-g gid index]
so there's two whole moods of this command, and yes, you're allowed to just... not pass a HOSTNAME. we love options. π
π DESCRIPTION π
bestie, this runs a simple ping-pong test over InfiniBand using the reliable connected (RC) transport. but here's the twist that makes it special: it uses multiple queue pairs (QPs) and a single shared receive queue (SRQ). multiple QPs, one SRQ, all vibing together. it's giving group project where only one person holds the snacks. β¨
π OPTIONS π
one bullet per flag, no skipping, no summarizing, we respect the full list in this house. π
-p,--port=PORTβ use TCP port PORT for initial synchronization (default18515)-d,--ib-dev=DEVICEβ use IB device DEVICE (default first device found)-i,--ib-port=PORTβ use IB port PORT (default port1)-s,--size=SIZEβ ping-pong messages of size SIZE (default4096)-m,--mtu=SIZEβ path MTU SIZE (default1024)-q,--num-qp=NUMβ use NUM queue pairs for test (default16)-r,--rx-depth=DEPTHβ post DEPTH receives at a time (default1000)-n,--iters=ITERSβ perform ITERS message exchanges (default1000)-l,--sl=SLβ use SL as the service level value of the QPs (default0)-e,--eventsβ sleep while waiting for work completion events (default is to poll for completions)-g,--gid-idx=GIDINDEXβ local port GIDINDEX-c,--chkβ validate received buffer
that's twelve options, we counted, we did not lose a single one, periodt. π
π¦ SEE ALSO π¦
go bother these siblings next, they're all family:
π AUTHORS π
Roland Dreier β <rolandd@cisco.com> π
π BUGS π
okay so, real talk, no cap, we have to be honest here because this is the important part:
The network synchronization between client and server instances is weak, and does not prevent incompatible options from being used on the two instances. The method used for retrieving work completions is not strictly correct, and race conditions may cause failures on some systems.
so likeβ¦ it might be a little messy. π not me warning you about actual race conditions. read that again before you blame yourself. it's not you, it's the synchronization. π
and that's the whole page bestie!! this manual page came from libibverbs, and it's dated August 30, 2005 β yeah, 2005, it's vintage, it's an icon, it walked so we could run. π§ ty for reading, go ping some pongs, ily π
π¦ 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: libibverbs-utils 62.0-3.el10 Β· GPLv2 or BSD
- centos-stream 9: libibverbs-utils 61.0-3.el9 Β· GPLv2 or BSD
- debian bookworm: ibverbs-utils 44.0-2 Β· BSD-MIT OR GPL-2.0-only
- debian trixie: ibverbs-utils 56.1-1 Β· BSD-MIT OR GPL-2.0-only
- fedora 43: libibverbs-utils 58.0-4.fc43 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: libibverbs-utils 61.0-2.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: libibverbs-utils 61.1^20260812git975bdaf-1.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- nixos 26.05: rdma-core 62.0
- nixpkgs unstable: rdma-core 65.0
- opensuse-leap 16.0: libibverbs-utils 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: libibverbs-utils 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: libibverbs-utils 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: libibverbs-utils 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- ubuntu jammy: ibverbs-utils 39.0-1 Β· BSD-MIT OR GPL-2.0-only
- ubuntu noble: ibverbs-utils 50.0-2build2 Β· BSD-MIT OR GPL-2.0-only
- ubuntu noble: ibverbs-utils 50.0-2ubuntu0.2 Β· BSD-MIT OR GPL-2.0-only
- ubuntu questing: ibverbs-utils 56.1-1ubuntu1
- ubuntu resolute: ibverbs-utils 61.0-2ubuntu3 Β· BSD-MIT OR GPL-2.0-only
- ubuntu stonking: ibverbs-utils 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