Skip to content

[release/1.3.2] libfabric: flush FI_MORE per rail - #1989

Merged
nv-nmailhot merged 1 commit into
release/1.3.2from
agent/backport-pr-1966-release-1.3.2
Jul 23, 2026
Merged

nv-nmailhot merged 1 commit into
release/1.3.2from
agent/backport-pr-1966-release-1.3.2

Conversation

@jh-nv

@jh-nv jh-nv commented Jul 23, 2026

Copy link
Copy Markdown

Summary

Backports #1966 onto release/1.3.2.

This cherry-picks 78ece0c9897f6751052514c7cb37fde6ab7228ec as 9dce5cb6615e45cfd71a45fcb6f42cfa5b28dfa9.

Details

  • Flushes FI_MORE WRITE batches per physical rail instead of by descriptor position.
  • Keeps batching opt-in via an explicit apply_fi_more decision passed into prepareAndSubmitTransfer.
  • Preserves this release branch's inline postXfer flow while adapting the per-rail flush precompute from the original PR.

Validation

  • git diff --check HEAD~1 HEAD

Full Meson build was not run locally because meson / Python mesonbuild is not installed in this environment.

FI_MORE WRITE batching (#1626) flushes the doorbell positionally (last
of each 16-group / last of the transfer), which is only correct when
every descriptor in a group is on the same rail.  But each descriptor's
rail comes from its own buffer's selected_rails, so a transfer spanning
buffers with different rail lists (e.g. dynamo's many DRAM
registrations) alternates physical rails within a group. The positional
flush then rings only one rail's doorbell; the other rail's batch is
never submitted and the transfer hangs. nixlbench doesn't hit this: one
buffer per device = one rail list.

Fix: postXfer precomputes the flush decision per physical rail
(walking descriptors backwards, the first rail seen is its last post),
and prepareAndSubmitTransfer takes a bool apply_fi_more instead of
deciding positionally. Batching is opt-in, so unmarked descriptors
(READ, striped, rail-less) flush.

Also: pair the remote endpoint with the rail by the same index; hoist
FI_MORE_BATCH_SIZE to libfabric_common.h; drop the unused desc_count
param.

Signed-off-by: Arun Karthik <akkart@amazon.com>
(cherry picked from commit 78ece0c)
@jh-nv
jh-nv marked this pull request as ready for review July 23, 2026 18:04
@nv-nmailhot
nv-nmailhot merged commit de8115c into release/1.3.2 Jul 23, 2026
14 checks passed
@nv-nmailhot
nv-nmailhot deleted the agent/backport-pr-1966-release-1.3.2 branch July 23, 2026 19:16

This branch was previously deployed

1 inactive deployment
SWX_AWS — 9dce5cb6 Deployed Jul 23, 2026 by copy-pr-bot[bot] via Run AWS Tests #8623
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants