中文AtomicFAA/CAS约束先说明每次占用2个WQE block,却又允许commit=false连续调用sqDepth次。实现PostSend按wqeBbCnt推进sqHead,FAA/CAS为2,sqDepth是block容量,且在容量前还有CQ轮询水位。因此按文档次数安排延迟提交会超出实际容量;例如128次原子操作需要256个block,并非128个。
master 基线 e3b8a5a8a27feb68686d56367d15a5a68e8030ff。
e3b8a5a8a27feb68686d56367d15a5a68e8030ff
静态核对当前PostSend的FAA/CAS wqeBbCnt=2、curHead += wqeBbCnt和PollCqWhenSqOverflow的轮询水位条件。Host算术核验sqDepth=128时128次调用需要256个block;没有把floor(sqDepth/2)宣称为考虑轮询水位后的安全批次上限。修改只涉及说明,不声称设备队列测试通过。 仓库适用 pre-commit hooks 与 diff --check 通过。 Markdown链接hook以离线模式使用lychee 0.23.0,未声明外部HTTP链接检查通过。
中英文API和Hcomm使用指南统一按未回收WQE block计数,考虑已有未完成任务和轮询水位,要求及时Commit;取消将sqDepth直接用作原子调用次数的错误规则。
本地无NPU,未执行设备运行测试。
/assign @Ethan_Zou
场景与影响
中文AtomicFAA/CAS约束先说明每次占用2个WQE block,却又允许commit=false连续调用sqDepth次。实现PostSend按wqeBbCnt推进sqHead,FAA/CAS为2,sqDepth是block容量,且在容量前还有CQ轮询水位。因此按文档次数安排延迟提交会超出实际容量;例如128次原子操作需要256个block,并非128个。
版本与位置
master 基线
e3b8a5a8a27feb68686d56367d15a5a68e8030ff。复现与验证
静态核对当前PostSend的FAA/CAS wqeBbCnt=2、curHead += wqeBbCnt和PollCqWhenSqOverflow的轮询水位条件。Host算术核验sqDepth=128时128次调用需要256个block;没有把floor(sqDepth/2)宣称为考虑轮询水位后的安全批次上限。修改只涉及说明,不声称设备队列测试通过。 仓库适用 pre-commit hooks 与 diff --check 通过。 Markdown链接hook以离线模式使用lychee 0.23.0,未声明外部HTTP链接检查通过。
预期与修复建议
中英文API和Hcomm使用指南统一按未回收WQE block计数,考虑已有未完成任务和轮询水位,要求及时Commit;取消将sqDepth直接用作原子调用次数的错误规则。
本地无NPU,未执行设备运行测试。