Skip to content

ib_write_bw RC WRITE fails deterministically above 64 KiB on NVIDIA GB10 (ConnectX-7); minimal libibverbs probe passes at identical geometry — instrument-specific failure, with 2023/2024 prior art #394

Description

@tjfholdings

Summary

On NVIDIA GB10 systems (Dell Pro Max FCM1253, DGX OS 7.5.0), ib_write_bw RC RDMA WRITE fails deterministically for any message size above 65,536 bytes, with a responder-side local protection error (0x3b 0x0 0x9d) on the first WR. A minimal libibverbs program performing the same operation — same nodes, same RDMA devices, same MR/WR geometry — passes at every size tested up to 8 MiB, with responder-side content verification. NCCL subsequently sustained 24.0 GB/s busbw (all_reduce, 3 nodes) across the same fabric with zero validation errors. The failure appears to be a property of the instrument's interaction with this platform, not of the transport.

We believe this is the same defect class as two unresolved prior reports:

Three environments (x86 bare-metal, x86 KVM, ARM GB10), two link layers (IB, RoCE), three firmware generations, one tool, one boundary, one syndrome.

Environment

Item Value
Nodes 3× NVIDIA GB10 (Dell Pro Max FCM1253), byte-uniform software/firmware
OS / kernel DGX OS 7.5.0 / Ubuntu 24.04.4 / 6.17.0-1026-nvidia (aarch64)
NIC ConnectX-7, FW 28.45.4028, PSID NVD0000000087 (latest existing for this PSID)
perftest distro 24.01 / ib_write_bw v6.20
Fabric RoCEv2, dual-rail, MikroTik CRS804 switches, MTU 9000, GID index 3 (IPv4)
IOMMU fault invariant to domain type (reproduced under both DMA-FQ and passthrough/identity)

Reproduction

ib_write_bw (RC, defaults per v6.20), any message size > 65,536 bytes, any node pair, any of the four RDMA devices per node:

  • ≤ 65,536 B: passes, sustains line rate indefinitely
  • > 65,536 B (65,537 upward): initiator reports Failed status 10: wr_id 0 syndrom 0x88 on the first WR; responder dmesg logs local protection error (0x3b 0x0 0x9d); boundary is exactly 16 × 4 KiB pages; device-, node-, and direction-independent (72/72 failing cells in our matrix)

Eliminated by test (each with a dedicated experiment)

  • SMMU/IOMMU domain type (passthrough discriminator with untouched control node)
  • Kernel/driver era (6.17.0-1014 vs -1026, mixed and homogeneous node pairings)
  • Accumulated device state (fresh-image first-touch failures)
  • Firmware currency (28.45.4028 is the newest firmware that exists for this PSID)
  • MR extent, WR extent, WR offset, sequential coverage, repeat count, responder MR access flags, responder page touch-state, ODP, PCIe relaxed ordering (all via the independent probe — every geometry passes)

The discriminating instrument

Attached: fabric-probe.c — minimal libibverbs RC WRITE with responder-side content verification (position-derived pattern). It moves 4 MiB in a single WR flawlessly, byte-exact, on the identical stack where ib_write_bw fails at 68 KiB. It also reproduces perftest's exact buffer geometry (128K WR / 256K MR): passes.

Instrument-rigor note: our probe's v1.0 had its own connection-setup race (client posting before responder RTR; presents as REM_INV_REQ NAK). We characterized and fixed it (RTS-ready handshake) before drawing conclusions — the previously failing cells then passed 12/12 stress repeats. We are keenly aware of the irony and have applied the same skepticism to both instruments.

What we did not determine

The exact perftest-side mechanism (its QP attribute set or post pattern on this platform). RoCE data is NIC-offloaded, so an on-wire diff needs hardware-level capture we didn't pursue. Version-specificity beyond distro 24.01 / v6.20 is untested. Happy to run candidate patches or bisections on this hardware.

Why it matters

This tool is the community-standard fabric verifier. On this platform it reports a hard transport ceiling that does not exist — we (and, we suspect, the two prior reporters) lost significant time to a false hardware-defect conclusion. NCCL acceptance on the same fabric: 24.0 GB/s busbw, 3 nodes, dual-rail, per-MAC byte counters balanced to 0.02%, zero errors.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions