reset poll_cq timeout on partial CQE progress in ChannelFence to avoid false timeout on large transfers
Co-authored-by: p_ch<pengchenghao1@huawei.com>
# message auto-generated for no-merge-commit merge:
!1659 merge poll_cq_reset_timer into master
reset poll_cq timeout on partial CQE progress in ChannelFence to avoid false timeout on large transfers
Created-by: p_ch
Commit-by: p_ch
Merged-by: cann-robot
Description: ## 描述
为HostCpuRoceChannel::ChannelFence()修复了大数据、多 WQE 传输场景下的超时误报问题,主要变更:
host_cpu_roce_channel.cc: 在部分 CQE 完成时重置超时起始时间,而非固定在调用 ChannelFence 之时,并在超时日志中增加剩余wqeNum信息。
## 关联的Issue
<!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。-->
<!-- 如果这个PR不涉及Issue,可填写"NA"。-->
## 测试
单边通信 d2d / d2h / h2d / h2h 通过 write 发送 16GB 数据验证成功。
新增了 3 个UT测试用例
| 测试用例 | 覆盖的新分支 |
| --- | --- |
| Ut_ChannelFence_When_PartialCompletion_Expect_HCCL_SUCCESS | ChannelFence 中部分完成时重置超时计时器|
| Ut_ChannelFence_When_PollExcessCqe_Expect_HCCL_E_INTERNAL | poll 返回完成数 > 预期 wqeNum_|
| Ut_ChannelFence_When_Timeout_Expect_HCCL_E_TIMEOUT | 等待 CQE 超时|
另外在 fixture 后新增了 SetupOneValidQpInfoMock() 辅助函数,用于模拟有效的 QP 信息(CQ、QP、context),使 ChannelFence 能进入 while 循环进行 polling。
## 文档更新
<!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。-->
## 类型标签
<!-- [x] 表示选中 -->
- [x] Bug修复
- [ ] 新特性
- [ ] 性能优化
- [ ] 文档更新
- [ ] 其他,请描述:
See merge request: cann/hcomm!1659