IBV_UC_PINGPONG(1)

πŸ“¦
version 65.0 Β· 2 versions
  • 65.0 Β· alpine 3.24, arch rolling, centos-stream 10, centos-stream 9, debian bookworm, debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking (latest)
  • 15.1 Β· freebsd 14.5, freebsd 15.1
, in alpine 3.24, arch rolling, centos-stream 10, centos-stream 9, debian bookworm, debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– 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 port PORT for initial synchronization (default 18515) 🫢
  • -d, --ib-dev=DEVICE β€” use IB device DEVICE (default: first device found) πŸ‘‘
  • -i, --ib-port=PORT β€” use IB port PORT (default: port 1) 🌈
  • -s, --size=SIZE β€” ping-pong messages of size SIZE (default 4096) πŸ’Œ
  • -m, --mtu=SIZE β€” path MTU SIZE (default 1024) πŸ“
  • -r, --rx-depth=DEPTH β€” post DEPTH receives at a time (default 1000) 🧺
  • -n, --iters=ITERS β€” perform ITERS message exchanges (default 1000) πŸ”
  • -l, --sl=SL β€” use SL as the service level value of the QP (default 0) ⭐
  • -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 βœ…
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