已开启
[Bug-Report|缺陷反馈]: AIN Put remote signal completion is not tracked #58
KaranocaVe创建于  3 天前
KaranocaVe
KaranocaVe
3 天前 创建

[Bug-Report|缺陷反馈]: AIN Put remote signal completion is not tracked

Ain::Put and Ain::PutValue append an AtomicFAA WQE for AinSignalInc or AinSignalAdd. The appended signal WQE uses cqe = 0 unconditionally, even when the write's Config requests CQ reporting. The Hcomm channel drain polls the CQE count in ChannelEntity::cqHead, so Flush can observe the data write's completion and return while the signal WQE is still outstanding.

Reproduction

In the CPU-debug URMA tests, use a two-rank team and the default immediate configuration. Call Put or PutValue with AinSignalInc. Before the fix, each call posts two WQEs but tracks one CQE (cqHead and cqTail remain 1, rather than 2). The regression cases are AinUrmaTestSuite.PutWithRemoteSignalTracksSignalCompletion and AinUrmaTestSuite.PutValueWithRemoteSignalTracksSignalCompletion.

Expected and actual behavior

Flush should wait for both the data write and its appended remote signal. In the affected path, only the write contributes a CQE, so the signal completion is not included in the drain target.

Impact and fix

Callers may continue after Flush while the remote signal operation is still outstanding. The fix carries the original operation's Config.cqe setting into the appended signal WQE and adds regression coverage for both APIs.

Validation

On the fixed source commit, the targeted CPU-debug AIN URMA build succeeded and the full AinUrmaTestSuite passed (20/20). Before the fix, the two new Put and PutValue regression cases failed: two WQEs were posted but only one CQE was tracked. After the fix, both cases observe cqHead = 2 before Flush and cqTail = 2 after it.

The patch applies cleanly to the current cann/asc-comm master ref at the fixed source commit. The modified C++ ranges also passed the recorded git diff --check and clang-format checks.

The tests use the Ascend950PR URMA CPU-debug target. No physical-device result is claimed: the available architecture is DAV_2201, while this source version documents AIN support for Ascend 950PR/950DT.

关联 PR: https://gitcode.com/cann/asc-comm/merge_requests/240

likedislike
KaranocaVeKaranocaVe
3 天前 关联了pull request:Fix AIN Put remote signal completion tracking
KaranocaVeKaranocaVe
3 天前 修改了issue 的描述
KaranocaVeKaranocaVe
3 天前 修改标题为 “[Bug-Report|缺陷反馈]: AIN Put remote signal completion is not tracked”,原标题为“AIN Put remote signal completion is not tracked”
KaranocaVeKaranocaVe
3 天前 修改了issue 的描述