已开启
[Bug-Report|缺陷反馈]: AIN Put remote signal completion is not tracked #58
KaranocaVe创建于 3 天前
3 天前 关联了pull request:Fix AIN Put remote signal completion tracking
3 天前 修改了issue 的描述
3 天前 修改标题为 “[Bug-Report|缺陷反馈]: AIN Put remote signal completion is not tracked”,原标题为“AIN Put remote signal completion is not tracked”
3 天前 修改标题为 “[Bug-Report|缺陷反馈]: AIN Put remote signal completion is not tracked”,原标题为“AIN Put remote signal completion is not tracked”
3 天前 修改了issue 的描述
[Bug-Report|缺陷反馈]: AIN Put remote signal completion is not tracked
Ain::PutandAin::PutValueappend anAtomicFAAWQE forAinSignalIncorAinSignalAdd. The appended signal WQE usescqe = 0unconditionally, even when the write'sConfigrequests CQ reporting. The Hcomm channel drain polls the CQE count inChannelEntity::cqHead, soFlushcan 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
PutorPutValuewithAinSignalInc. Before the fix, each call posts two WQEs but tracks one CQE (cqHeadandcqTailremain1, rather than2). The regression cases areAinUrmaTestSuite.PutWithRemoteSignalTracksSignalCompletionandAinUrmaTestSuite.PutValueWithRemoteSignalTracksSignalCompletion.Expected and actual behavior
Flushshould 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
Flushwhile the remote signal operation is still outstanding. The fix carries the original operation'sConfig.cqesetting 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
AinUrmaTestSuitepassed (20/20). Before the fix, the two newPutandPutValueregression cases failed: two WQEs were posted but only one CQE was tracked. After the fix, both cases observecqHead = 2beforeFlushandcqTail = 2after it.The patch applies cleanly to the current
cann/asc-commmasterref at the fixed source commit. The modified C++ ranges also passed the recordedgit diff --checkand 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