Repository navigation
Conversation
Cover src/gin/gin_host_proxy.cc (the GIN proxy backend over an RMA plugin: listen/connect, symmetric MR registration with the DMA-BUF retry, context create/destroy, GFD polling, submission and completion) and the versioned GPU-context writers in src/gin/proxy_gpucontext/, in a new rccl-UnitTestsMicroGinHostProxy binary. Pins as observed: the second DMA-BUF fd leaks when both registrations are rejected, backendVersion 0 fails only after every buffer and the RMA context are created (and leaks them), a non-power-of-two maxRecvs gives a non-power-of-two queue, and destroy never frees the signal-offsets buffer. Co-Authored-By: Claude <noreply@anthropic.com>
|
@argus review |
✅ All Policy Checks Passed
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
There was a problem hiding this comment.
ARGUS
Findings
5 more finding(s), not posted inline
projects/rccl/test/host/gin-host-proxy-test.cc:858(Low) ginCtx_ left dangling after mid-test destroyContext; a failing Create then makes TearDown destroy it twiceprojects/rccl/test/host/gin-host-proxy-test.cc:49(Low) Outer for loops without braces around a nested if or a wrapped body (lines 49, 1114, 1295)projects/rccl/test/host/gin-host-proxy-test.cc:906(Low) Create_LogsWhenGdrCopyIsUnavailable proves its no-GDR half only through log textprojects/rccl/test/host/gin-host-proxy-test.cc:808(Nit) WriteCombined assertion pins a host_flags argument that gdrwrap.h allocMemCPUAccessible ignoresprojects/rccl/test/host/gin-host-proxy-test.cc:989(Nit) Pinned-bug tests use '// Observed:' instead of the repo's 'LATENT BUG (file:line)' convention
This PR changes 1,552 lines across 7 files. A change this size is hard to review
well, for a person and for this bot alike: reviewers lose the thread, defects hide in the
volume, and the feedback arrives too late to be cheap to act on. Splitting it into a
stacked pull request
gives each piece a reviewable diff and keeps the history. This review covers the whole change
regardless.
Bottom line: Looks approval ready.
Comment @argus review to re-run, or @argus re-review after pushing.
Null ginCtx_ after every mid-test destroy, brace the nested loops, check the counters pointer the GPU gets with and without GDRCopy, drop the host_flags assertions allocMemCPUAccessible ignores on HIP, and use the LATENT BUG (file:line) convention for the pinned bugs. Co-Authored-By: Claude <noreply@anthropic.com>
|
Addressed in 53517f8 (all five, rebuilt, 64/64 and clean × 20 shuffled):
@argus review |
There was a problem hiding this comment.
ARGUS
This PR changes 1,558 lines across 7 files. A change this size is hard to review
well, for a person and for this bot alike: reviewers lose the thread, defects hide in the
volume, and the feedback arrives too late to be cheap to act on. Splitting it into a
stacked pull request
gives each piece a reviewable diff and keeps the history. This review covers the whole change
regardless.
Bottom line: LGTM.
Comment @argus review to re-run, or @argus re-review after pushing.
…comrccl-2807-gin-host-proxy-host-microtests # Conflicts: # projects/rccl/test/host/MICROTEST_README.md # projects/rccl/test/host/run_host_tests.sh # projects/rccl/tools/scripts/test_runner/configs/ci-precheckin.json # projects/rccl/tools/scripts/test_runner/lib/test_executor.py
|
@argus review |
There was a problem hiding this comment.
ARGUS
This PR changes 1,558 lines across 7 files. A change this size is hard to review
well, for a person and for this bot alike: reviewers lose the thread, defects hide in the
volume, and the feedback arrives too late to be cheap to act on. Splitting it into a
stacked pull request
gives each piece a reviewable diff and keeps the history. This review covers the whole change
regardless.
Bottom line: LGTM.
Comment @argus review to re-run, or @argus re-review after pushing.
JIRA ID: AICOMRCCL-2807
What
Host-only microtests for
src/gin/gin_host_proxy.ccand the versioned GPU-context writers insrc/gin/proxy_gpucontext/(gpucontext{,_v1,_v2}.cc), in a newrccl-UnitTestsMicroGinHostProxybinary (64 tests).Overlaps rahulvaidya20's #13221 (same file name, same unit); will reconcile with it.
How
gin-host-proxy-test.cc#includes the four hipified units and seams the RMA plugin, device allocations,hipMemsetand the DMA-BUF export in the TU; GFDs are posted straight into the host-side queues.ncclGinProxyRegMrSym: when both DMA-BUF registrations fail, it returns before closing the second exported fd.ncclGinProxyCreateContext: acceptsbackendVersion0, fails in the GPU-context writer, and releases nothing it created.maxRecvsgives a queue the index mask cannot wrap.ncclGinProxyDestroyContextnever frees the signal-offsets buffer.Coverage
Lines:
gin_host_proxy.cc476/476,gpucontext.cc33/33,gpucontext_v1.cc10/10,gpucontext_v2.cc13/13.Mutation Testing
57/57 killed: 53 in
gin_host_proxy.cc, 4 in the GPU-context writers.Test Plan
Standalone build:
rccl-UnitTestsMicroGinHostProxy64/64;--gtest_shuffle --gtest_repeat=20is clean.