UCP/WIREUP: Improve p2p lane matching diagnostics - #11912
Conversation
Report the local interface, path index and remote address entry when p2p lane matching runs out of remote ep addresses or hits a duplicate remote lane, and turn the ep address bounds assertion into a fatal error so release builds report it instead of reading past the ep address array. Also name the local interface in the lane construction trace and the remote transport and md index in the address unpack trace, so a log alone maps lanes and address entries to devices.
|
🤖 Starting review — findings will be posted here when done. |
|
🤖 Review complete — no issues found. |
|
🤖 Starting review — findings will be posted here when done. |
|
🤖 Review complete — no issues found. |
Define UCP_EP_LANE_FMT and UCP_EP_LANE_ARG next to the other ucp_ep.h macros instead of in the middle of the function prototype list.
|
🤖 Starting review — findings will be posted here when done. |
|
🤖 Review complete — no issues found. |
|
🤖 CI Triage Agent — TL;DR: The gtest binary was aborted by the 900-second watchdog while Full analysisSummary: Root cause: This is a hang, not a slow job. The log shows continuous test activity (sub-second per test) until
That is the Nothing in the failing path involves UCP wireup: the test is pure UCT ( Implicated commit: unknown — not attributable to 5c7535d (UCP wireup logging). Most plausible related changes to the RC keepalive/error-detection path are 33e7d1d "UCT/EP: Enhance uct_ep_check (#11495)" (Evgeny Leksikov) and the in-progress error-handler work in #11829. File: Suggested fix:
Related: PR #11912 (this build), PR #11495 (uct_ep_check enhancement), PR #11829 (UCT/IB/MLX5 in-progress error handler) |
What?
Improve wireup p2p lane matching diagnostics, and report an ep address overflow as a fatal error instead of a debug-only assertion.
Related: https://nvbugspro.nvidia.com/bug/6665318
Why?
When an endpoint selects more lanes toward a remote device than the peer packed ep addresses for,
ucp_wireup_match_p2p_lanes()reads pastep_addrs[]: debug builds assert, release builds pick up a zeroed entry and die later with a message naming neither the local device nor the remote address entry. Diagnosing it required the peer's pack traces to learn which devicesaddr[N]and each lane referred to.How?
Ep address overflow, now fatal in release builds too:
Duplicate remote lane:
Missing remote ep address in
ucp_wireup_connect_local():Lane construction trace, the only lane-to-device record when an unchanged config skips
ucp_wireup_print_config():Address unpack trace, so the receiver's log is self-describing: