IBV_UC_PINGPONG(1)
π ibv_uc_pingpong β bestie's guide to the InfiniBand UC ping-pong π
okay so. ibv_uc_pingpong is a lil program in the libibverbs family β and yes, it lives in section 1 of the manual, the user commands section, so it's a real executable you just... run. It's a simple InfiniBand UC transport test. That's the whole vibe. π
β¨ NAME β¨
ibv_uc_pingpong β simple InfiniBand UC transport test π¦
πΈ SYNOPSIS πΈ
ibv_uc_pingpong [-p port] [-d device] [-i ib port] [-s size] [-m size]
[-r rx depth] [-n iters] [-l sl] [-e] [-g gid index] HOSTNAME
ibv_uc_pingpong [-p port] [-d device] [-i ib port] [-s size] [-m size]
[-r rx depth] [-n iters] [-l sl] [-e] [-g gid index]
notice there's two whole forms up there β one where you name a HOSTNAME and one where you don't. pick your fighter. βοΈ
π DESCRIPTION π
Run a simple ping-pong test over InfiniBand via the unreliable connected (UC) transport. π
That's it, that's the whole thing. You ping, you pong, you learn whether your UC path is actually slaying or not. β¨
π OPTIONS π
-p,--port=PORTβ use TCP portPORTfor initial synchronization (default18515) π«Ά-d,--ib-dev=DEVICEβ use IB deviceDEVICE(default: first device found) π-i,--ib-port=PORTβ use IB portPORT(default: port1) π-s,--size=SIZEβ ping-pong messages of sizeSIZE(default4096) π-m,--mtu=SIZEβ path MTUSIZE(default1024) π-r,--rx-depth=DEPTHβ postDEPTHreceives at a time (default1000) π§Ί-n,--iters=ITERSβ performITERSmessage exchanges (default1000) π-l,--sl=SLβ useSLas the service level value of the QP (default0) β-e,--eventsβ sleep while waiting for work completion events (default is to poll for completions) π΄-g,--gid-idx=GIDINDEXβ local portGIDINDEXπ-c,--chkβ validate received buffer β
heads up bestie: -c shows up in the OPTIONS list but not in the SYNOPSIS up there. that's just how the page is written. i'm not going to gaslight you about it, i'm just reporting it. π
π SEE ALSO π
the whole ping-pong friend group. they're all iconic. π«Ά
π AUTHORS π
Roland Dreier β <rolandd@cisco.com>
π BUGS π
okay so this is the part where we get real for a sec, no cap.
The network synchronization between client and server instances is weak, and does not prevent incompatible options from being used on the two instances.
And the method used for retrieving work completions is not strictly correct, and race conditions may cause failures on some systems.
fr fr, read that twice. weak sync, incompatible options can sneak through, and the completion-retrieval method is not strictly correct β race conditions can make this fail on some systems. it is what it is. π
and that's the page, bestie!! this one shipped as part of libibverbs, and the date on it is August 30, 2005 β yeah, it's been serving looks since 2005. periodt. πβ¨ππ¦πΈ
π¦ 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