Repository navigation
chore: UCT/TCP: Reuse maximum AM length - #10
Closed
roiedanino wants to merge 13 commits into
Closed
roiedanino wants to merge 13 commits into
roiedanino wants to merge 13 commits into
Conversation
Marking a draft PR "ready for review" makes Azure queue a second run of the same commit and auto-cancel the run already in progress. Over the last 30 days this happened 26 times, 17 of them killing a running draft build (one after 18 hours in the test queue). Azure has no option to build drafts and skip that transition, so stop building drafts instead: a draft gets its first PR pipeline run when it is marked ready. Only the PR pipeline is gated. The snapshot and release pipelines do real work on a PR only when asked via an "AZP/SNAPSHOT: " or "AZP/RELEASE: " commit title, which is how packaging changes get tested from draft PRs; their unrequested runs cost seconds, so they stay as is. Checked on this PR: pushes while draft queued no UCX PR run, an "/azp run UCX PR" comment on the draft was refused by Azure, and marking the PR ready queued the run. Signed-off-by: Alexey Rivkin <arivkin@nvidia.com>
* UCP/GTEST: Add test for multi-rail load-balance * UCP/GTEST: Multi-rail LB test code optimization. Reuse configured rates in m_port_speed. Check resource index in advance of reading the lane's byte count. Replace the manual resource lookup with ucp_ep_get_tl_rsc. Signed-off-by: Zhenlong Ma <zhenlongm@nvidia.com> --------- Signed-off-by: Zhenlong Ma <zhenlongm@nvidia.com>
* AZP/SNAPSHOT: Point JUCX snapshots at Central Portal Every master CI run fails in Publish-Maven with a 400 Bad Request on maven-metadata.xml. The snapshotRepository still points at the ossrh-staging-api compatibility shim, which only serves the staging deploy endpoint - snapshots moved to the Central Portal snapshot repository. Release publishing is unaffected and keeps using the shim. Signed-off-by: Alexey Rivkin <arivkin@nvidia.com>
CI: Do not start PR pipelines for draft pull requests
* UCT/IB/MLX5: Add WQE parser for am zcopy UCT/IB/MLX5: cleanup GTEST/UCT/IB: update gtest GTEST/UCT/IB: update test GTEST/UCT/IB: refactor test UCT/IB/MXL5: cleanup UCT/IB/MLX5: address comments UCT/IB/MLX5: address comments UCT/IB/MLX5: address comments UCT/IB/MLX5: address comments UCT/IB/MLX5: address comments UCT/IB/MLX5: address comments UCT/IB/MLX5: address comments UCT/IB/MLX5: address comments UCT/IB/MLX5: address comments UCT/IB/MLX5: address comments GTEST/UCT/FT: add zcopy test UCT/IB/MLX5: address comments UCT/IB/MLX5: const wrap UCT/IB/MXL5: const wrap UCT/IB/MXL5: const wrap UCT/IB/MLX5: am zcopy parser GTEST/UCT/IB: test am zcopy parser UCT/IB/MLX5: cleanup UCT/IB/MLX5: log level UCT/IB/MLX5: cleanup GTEST/UCT/IB: rm overlap gtests UCT/IB/MLX5: address comments UCT/IB/MLX5: address comments UCT/IB/MLX5: address comments GTEST/UCT/IB: add test for am zcopy GTEST/UCT/IB: fix test GTEST/UCT/IB: cleanup UCT/IB/MLX5: align inline size UCT/IB/MLX5: const wrap UCT/IB/MLX5: add assertions UCT/IB/MLX5: add doc for copy segs UCT/IB/MLX5: copy segs UCT/IB/MLX5: refactor am zcopy parser UCT/IB/MLX5: address comments UCT/IB/MLX5: cleanup UCT/IB/MLX5: cleanup UCT/IB/MLX5: unsupport tag GTEST/UCT/IB: cleanup UCT/IB/MLX5: fix num packets UCT/IB/MLX5: refactor UCT/IB/MLX5: format UCT/IB/MLX5: format UCT/IB/MLX5: comp status UCT/IB/MLX5: am segs helper UCT/IB/MLX5: format and cleanup * GTEST/UCT/IB: fix mem check * UCT/IB/MLX5: am zcopy handler --------- Co-authored-by: Zihao Zhao <zizhao@nvidia.com>
…nucx#12063) A resent failover token can name a queue pair that was already destroyed.
…2.03 SP4 / 24.03 SP3 (openucx#11906) * CI: Add Fedora 44, Ubuntu 26.10, Azure Linux 4.0, UOS and openEuler 22.03 SP4 / 24.03 SP3 Six OSes across both arches, wired into the Azure PR pipeline - twelve containers in buildlib/pr/main.yml and matching rows in the x86_64 and aarch64 matrices of buildlib/pr/build_job.yml - plus the same twelve rows in .ci/pipeline/build_matrix.yaml so the Jenkins matrix stays in step. Every image exists on rdmz-harbor today. Fedora 41 is long out of support, and openEuler is the line the OFED trains are moving to: MLNX_OFED 26.07 dropped openeuler22.03sp3 in favour of sp4, and DOCA 3.5 dropped EulerOS entirely, which is what the euleros2sp12 row still builds against. That row stays; retiring it is a separate change. Fedora, Ubuntu 26.10 and Azure Linux 4.0 are inbox builds. No OFED train builds Fedora past fc32 or Azure Linux past 3.0, and MLNX_OFED 26.07 predates Ubuntu 26.10 - a MOFED tag can follow once a train carries it. Azure Linux 4.0 is a public preview; its image tracks the azurelinux-beta channel until GA. openEuler goes DOCA on x86_64 and MOFED on aarch64, because DOCA publishes no aarch64 openEuler. UOS goes DOCA on x86_64 and inbox on aarch64, because neither DOCA nor MOFED publishes aarch64 for 20.1060a. Build modes follow the existing split: sanity for the inbox-only rows, short for the OFED-backed ones and for everything on aarch64. Images come from hpcx-build. Signed-off-by: Alexey Rivkin <arivkin@nvidia.com> * CI: Retire EOL and superseded build rows Agreed with UCX dev management after the new OS rows went in. Removed: RHEL 7.6 (EOL 2024-06), Debian 10.9 (LTS ended 2024-06), Ubuntu 18.04 (EOL 2023-05), Ubuntu 20.04 and its ROCm 5.4 lane (EOL 2025-05), Ubuntu 22.10 (interim, EOL 2023-07), Fedora 41 (EOL 2025-12, replaced by 44), EulerOS 2.0 SP12 (DOCA 3.5 dropped EulerOS; the openEuler rows cover it) and Kylin V10 SP3 (OFED now targets Kylin V11 only). Debian 11.3 (LTS ended 2026-08-31) stays as a sanity build; CentOS 7 stays as sanity. Two containers were used outside the build matrix. Build_Static built on Ubuntu 20.04 and 18.04; it now builds on 22.04 and 24.04, keeping two Ubuntu static builds without the EOL images. rhel76 was the default of the coverity.yml container parameter, which main.yml always overrides with coverity_rh7; the default now says so. The Jenkins matrix drops the same images. * TEST: Carry the GCC 16 fixes from openucx#11908 (test only, drop before merge) Temporary copy of openucx#11908 so the fedora44 rows in this PR build with GCC 16. Revert or drop this commit once openucx#11908 lands. (cherry picked from commits 29aa3c1 and f1bea8d) Signed-off-by: Alexey Rivkin <arivkin@nvidia.com> --------- Signed-off-by: Alexey Rivkin <arivkin@nvidia.com>
Validate wire-provided AM lengths at runtime before retaining the header for a later receive. Disconnect peers that advertise a payload larger than the configured receive segment.\n\nAdd a raw TCP regression that sends the protocol magic and an oversized AM header.
Report rejected oversized messages at diagnostic level and use a compile-time constant for the TCP magic value in the regression test.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Intent
Close the current PR review comment on TCP active-message receive-length validation by deriving the maximum allowed AM length once and reusing that exact value for both the comparison and diagnostic. Keep behavior, APIs, wire format, and test scope unchanged. Push the existing fix/tcp-am-rx-length-6069355 branch that backs PR openucx#12081.
What Changed
aa7024e UCT/TCP: Reuse maximum AM length
c619274 UCT/TCP: Improve oversized AM diagnostics
2a7a1c8 UCT/TCP: Validate AM receive length
9af60a8 CI: Add Fedora 44, Ubuntu 26.10, Azure Linux 4.0, UOS and openEuler 22.03 SP4 / 24.03 SP3 (openucx#11906)
d76cd54 UCT/IB/MLX5: Treat a missing QP during RX token query as absent. (openucx#12063)
0f59999 UCT/IB/MLX5: support am zcopy in purge outstanding (openucx#11873)
fc262d7 Merge pull request openucx#11932 from Alexey-Rivkin/ci-no-draft-builds
651d644 AZP/SNAPSHOT: Point JUCX snapshots at Central Portal (openucx#11883)
65ea144 UCP/CONFIG: Allow 32 MDs per component on Vera Rubin (openucx#12064)
f417f09 UCP/CORE: Fix cleanup flow in
ucp_fill_config(openucx#12067)d8529c7 UCP/RNDV: Use local memory detection for RTR_REQ responder (openucx#12041)
ad6f25c UCP/GTEST: Add test for multi-rail load-balance (openucx#11842)
706a164 CI: Do not start the PR pipeline for draft pull requests
Testing
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
⏭️ **Rebase** - skipped
Step was skipped.
⏭️ **Review** - skipped
Step was skipped.
⏭️ **Test** - skipped
Step was skipped.
⏭️ **Document** - skipped
Step was skipped.
⏭️ **Lint** - skipped
Step was skipped.
✅ **Push** - passed
✅ No issues found.