UCP/CORE: Allow auxiliary transports for AM fallback - #11848
Conversation
|
🤖 Starting review — findings will be posted here when done. |
| status = ucp_wireup_select_transport(select_ctx, select_params, | ||
| &criteria, tl_bitmap, UINT64_MAX, | ||
| UINT64_MAX, UINT64_MAX, 1, | ||
| UINT64_MAX, UINT64_MAX, |
There was a problem hiding this comment.
The aux fallback interacts with the max_bcopy retry loop. With aux_fallback=1, allow_aux=0, when a primary transport is found but has too-small max_bcopy, it hits continue and re-runs primary-only selection (still allow_aux=0), looping again — the fallback to aux is only triggered by UCS_ERR_UNREACHABLE, never by the max_bcopy path. This means a viable aux transport is never tried when the only primary is rejected for small max_bcopy. Is the aux fallback supposed to also kick in when the only primary AM lane is rejected due to small max_bcopy? Currently that path just retries primary-only and never reaches the allow_aux=1 fallback.
| for (tl_id = 0; tl_id < context->num_tls; ++tl_id) { | ||
| ucs_assert(context->tl_rscs != NULL); | ||
| resource = &context->tl_rscs[tl_id]; | ||
| if (!(resource->flags & UCP_TL_RSC_FLAG_AUX)) { |
There was a problem hiding this comment.
num_usable_tls excludes UCT_DEVICE_TYPE_ACC, but num_primary_tls counts every non-AUX resource including ACC. The combined (num_usable_tls == 0) || (num_primary_tls == 0) check is conservative and still correct, but the asymmetry is easy to misread. A one-line comment on why num_primary_tls intentionally counts ACC would help future readers.
| enum { | ||
| /* The flag indicates that the resource may be used for auxiliary | ||
| * wireup communications only */ | ||
| /* The flag indicates that the resource may be used only when auxiliary |
There was a problem hiding this comment.
The reworded AUX flag comment ("may be used only when auxiliary transports are explicitly allowed by lane selection") is accurate, but the flag is still also used to gate keepalive and wireup-aux lane selection (criteria.tl_rsc_flags = UCP_TL_RSC_FLAG_AUX). Consider noting both the AM-fallback and wireup/keepalive uses so the comment does not read as AM-only.
|
🤖 CI Triage Agent — TL;DR: The single gtest failure Full analysisSummary: ASAN gpu job failed with exactly 1 failing test out of 10134 — Root cause: Test-level bug, not a library bug.
Implicated commit: a60c0ac — Mikhail Brinskii, "UCP/CORE: Allow auxiliary transports for AM fallback" (PR #11848 head; touches both File: test/gtest/ucp/test_ucp_context.cc:230-248 (assertions at :242-243); override at test/gtest/ucp/ucp_test.cc:665-668 Suggested fix: Stop relying on
ucp_test_param param = GetParam();
param.transports = {"^cuda"};
entity *e = create_entity(false, param);
|
What?