| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
【PR】: 简要描述 process mode manager 上帝类重构 Co-authored-by: LiWei79<liwei174@huawei.com> # message auto-generated for no-merge-commit merge: !3632 merge package_manager into master 【PR】: 简要描述 process mode manager 上帝类重构 Created-by: LiWei79 Commit-by: LiWei79 Merged-by: cann-robot Description: # Pull Request ## 描述 对 ProcessModeManager 上帝类进行重构,将其拆分为 4 个单一职责的类,同时归档包处理文件到 basic_component/package_manager。 ### 主要变更 **1. ProcessModeManager God Class 拆分** - **提取 ProcessSharedContext** — 将 rspCode_/errMsg_/errorLog_/startOrStopFailCode_/openSubPid_/pidArry_/pidList_ 等共享响应状态提取为独立的 ProcessSharedContext 结构体 - **提取 ResponseMsgDispatcher** — 将 DeviceMsgProcess/ServerToClientMsgProc/PackageInfoMsgProc/CapabilityResMsgProc/PidQosMsgProc/StoreProcListStatus 等 21 条消息回调注册和响应处理逻辑提取为独立的 ResponseMsgDispatcher 类 - **提取 SubProcessController** — 将 ProcessOpenSubProc/ProcessCloseSubProc/ProcessCloseSubProcList/GetSubProcStatus/GetSubProcListStatus/RemoveFileOnDevice 等 SubProc 生命周期管理方法提取为独立的 SubProcessController 类 - **提取 TsdProcessController** — 将 Open/Close/GetHdcConctStatus/InitQs/UpdateProfilingConf/WaitRsp/BuildBaseMessageContext 等 TSD 进程生命周期管理方法提取为独立的 TsdProcessController 类 **2. PackageManager 抽取** - 将 ProcessModeManager 中的包管理功能解耦为独立的 PackageManager 类,以组合形式存在于 ProcessModeManager 中 - 将所有包处理相关文件从 common/ 和 tsdclient/ 归档到 basic_component/package_manager/ **3. Stub 文件整理** - 合并 stub_process_mode_nowin.cpp 到 tsd_process_controller.cpp - 迁移 stub_dc.cpp 到 common/stub/ - 删除 tsdclient/src/stub/ 空目录 ### 重构前后对比 | 指标 | 重构前 | 重构后 | |------|--------|--------| | ProcessModeManager.h 行数 | 229 | 166 | | ProcessModeManager.cpp 行数 | 783 | 114 | | ProcessModeManager 方法数 | 60+ | 16(薄委托) | | ProcessModeManager 数据成员 | 25+ | 6 | | 新增类 | - | ProcessSharedContext / ResponseMsgDispatcher / SubProcessController / TsdProcessController | ## 变更类型 请选择本次引入的变更类型: - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue #733 ## 如何测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行 cmake 配置和编译,验证 CMakeLists.txt 配置变更正确 - 验证 libtsdclient.so 能正确链接 2. **单元测试** - 执行 tsd_client_utest,验证 774 个测试用例全部通过 - 验证 ProcessModeManager 的所有 virtual 接口(Open/Close/GetHdcConctStatus/ProcessOpenSubProc 等)行为不变 - 验证 ResponseMsgDispatcher 的 21 条消息回调注册和分发正确 - 验证 SubProcessController 的子进程管理功能(Open/Close/GetStatus) - 验证 TsdProcessController 的 TSD 进程管理功能(Open/Close/InitQs/UpdateProfilingConf) 3. **ABI 兼容性验证** - 验证对外 C API 符号(TsdOpen/TsdClose/GetHdcConctStatus 等 12 个)无变化 - 验证 ProcessModeManager 虚函数表(vtable)无变化 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 重构方案基于 Composition over Inheritance + Facade 设计模式,已通过专家代码审查(修复了 POD 成员未初始化和封装性问题),UT 774 passed 零回归,ABI 无变化。 See merge request: cann/runtime!3632 | 2 个月前 | |
feat:日志修改 Co-authored-by: liu-lu<www.liulu824910939@qq.com> # message auto-generated for no-merge-commit merge: !4608 merge master into master feat:日志修改 Created-by: liu-lu Commit-by: liu-lu Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 包含两部分内容:**日志文案规范化(69 个源文件)** 与 **增量 UT 覆盖补齐(21 个测试文件、33 个用例)**,针对 aicpu_sched 与 tsd 两个模块。 ### 1. 日志文案规范化(不改变业务逻辑) - **拼写与语法修正**:"no equal to" → "is not equal to"、"has already grant" → "has already granted"、"errorno" → "errno"、"doesn't has admin" → "doesn't have admin"、"Buffer initial failed" → "Buffer initialization failed" 等; - **补充关键上下文**:非法参数错误日志增加实际取值与合法范围(如 pid list size invalid:%u, valid range is [1, %u]、invalid thread index:%u, valid range [0, %zu)); - **补充度量单位**:blockSize / 内存大小等数值统一标注 bytes; - **修正事实性错误**:DestroyQueueKernel 路径日志误写为 DumpDataKernel;hdc_common 初始化失败日志补充 drvRet 与 maxSegment 阈值上下文; - **修复死代码(Bug)**:aicpu_schedule/core/aicpusd_event_process.cpp 的 ProcessMsgVersionEvent 中 if (ret != AICPU_SCHEDULE_OK) 恒为假(AicpuMsgVersionResponseToTs(const int32_t ret) 传值不回写),改为判断 rspRet(与 aicpu_cust_schedule 侧同名函数语义对齐),修复版本协商响应失败被静默吞掉的问题。 ### 2. 增量 UT 覆盖补齐 针对 CI 增量覆盖率报告(ut_cov_tsd.tar.gz / ut_cov_aicpusd.tar.gz)中全部 **28 行未覆盖修改行** 补充用例: - 非法入参分支:GetSubProcListStatus / CloseSubProcList / ExecuteClosePidList(nullptr、长度为 0、超上限); - 快速关闭模式:TsdProcessController::Close(QUICK_CLOSE_MODE) 不走设备侧收发; - 设备调用失败分支:halBuffInit(CreateGroupForMaster / CreateGrp)、halEschedSetEventPriority(empty→not empty / full→not full)、ioctl 失败(VF 模式)、SendUpdateProfilingRspToTsd / AicpuMsgVersionResponseToTs 响应失败等; - operator new[](nothrow)分配失败:hook 方式覆盖 QueueEnQueueBuff 的 buffIovec 分配失败分支; - 修正假通过用例:MBufferPoolAllocateFail 原 stub halBuffCreatePool 不回写 *mp 导致断言通过但未命中目标行,补出参回写; - 边界场景:VmHWM 非法值、ccpu 列表为空、HOME 路径超长(PATH_MAX)、重复注册 kernel、ExecuteClosePidList 分批失败等。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(日志文案规范化) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue #927 ## 如何测试 1. **UT 全量回归**:x86_64(Ubuntu 24.04,gcc 13.3)本地构建并运行 tsd(tsd_client_utest、stub_external_deps_utest)与 aicpu_sched 全部 14 个 UT 目标,共 **2947 个用例全部 PASSED**(tsd 885+4;aicpu_sched 2062,其中 aicpu_sched_sim_utest 需 root 运行,与 CI 环境一致); 2. **增量覆盖率复核**:gcov 逐行验证两份覆盖率报告中全部 28 行未覆盖修改行(tsd 5 行 + aicpu_sched 23 行),**28/28 全部命中**; 3. **内存检查**:新增/修改用例逐条测量峰值 RSS(对比各二进制空跑基线),最大 72.8MB(aicpu_aicpuschedule_utest),均低于 500MB 限制; 4. **格式门禁**:clang-format(仓库 .clang-format,ColumnLimit=120)检查通过。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档(本次无文档变更) - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 日志修改均为文案层面调整,唯一逻辑变更为 ProcessMsgVersionEvent 死代码修复(ret → rspRet),建议 reviewer 重点关注 src/aicpu_sched/aicpu_schedule/core/aicpusd_event_process.cpp; - UT 补充手法说明见 Issue #927 设计方案;其中 mockcpp 对虚成员函数不可打桩,采用子类注入方式(StubDeviceComm);私有成员访问依赖 #define private public 宏块内 include 顺序(aicpusd_drv_manager.h 已移入宏块)。 See merge request: cann/runtime!4608 | 1 个月前 | |
【PR】: 简要描述 process mode manager 上帝类重构 Co-authored-by: LiWei79<liwei174@huawei.com> # message auto-generated for no-merge-commit merge: !3632 merge package_manager into master 【PR】: 简要描述 process mode manager 上帝类重构 Created-by: LiWei79 Commit-by: LiWei79 Merged-by: cann-robot Description: # Pull Request ## 描述 对 ProcessModeManager 上帝类进行重构,将其拆分为 4 个单一职责的类,同时归档包处理文件到 basic_component/package_manager。 ### 主要变更 **1. ProcessModeManager God Class 拆分** - **提取 ProcessSharedContext** — 将 rspCode_/errMsg_/errorLog_/startOrStopFailCode_/openSubPid_/pidArry_/pidList_ 等共享响应状态提取为独立的 ProcessSharedContext 结构体 - **提取 ResponseMsgDispatcher** — 将 DeviceMsgProcess/ServerToClientMsgProc/PackageInfoMsgProc/CapabilityResMsgProc/PidQosMsgProc/StoreProcListStatus 等 21 条消息回调注册和响应处理逻辑提取为独立的 ResponseMsgDispatcher 类 - **提取 SubProcessController** — 将 ProcessOpenSubProc/ProcessCloseSubProc/ProcessCloseSubProcList/GetSubProcStatus/GetSubProcListStatus/RemoveFileOnDevice 等 SubProc 生命周期管理方法提取为独立的 SubProcessController 类 - **提取 TsdProcessController** — 将 Open/Close/GetHdcConctStatus/InitQs/UpdateProfilingConf/WaitRsp/BuildBaseMessageContext 等 TSD 进程生命周期管理方法提取为独立的 TsdProcessController 类 **2. PackageManager 抽取** - 将 ProcessModeManager 中的包管理功能解耦为独立的 PackageManager 类,以组合形式存在于 ProcessModeManager 中 - 将所有包处理相关文件从 common/ 和 tsdclient/ 归档到 basic_component/package_manager/ **3. Stub 文件整理** - 合并 stub_process_mode_nowin.cpp 到 tsd_process_controller.cpp - 迁移 stub_dc.cpp 到 common/stub/ - 删除 tsdclient/src/stub/ 空目录 ### 重构前后对比 | 指标 | 重构前 | 重构后 | |------|--------|--------| | ProcessModeManager.h 行数 | 229 | 166 | | ProcessModeManager.cpp 行数 | 783 | 114 | | ProcessModeManager 方法数 | 60+ | 16(薄委托) | | ProcessModeManager 数据成员 | 25+ | 6 | | 新增类 | - | ProcessSharedContext / ResponseMsgDispatcher / SubProcessController / TsdProcessController | ## 变更类型 请选择本次引入的变更类型: - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue #733 ## 如何测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行 cmake 配置和编译,验证 CMakeLists.txt 配置变更正确 - 验证 libtsdclient.so 能正确链接 2. **单元测试** - 执行 tsd_client_utest,验证 774 个测试用例全部通过 - 验证 ProcessModeManager 的所有 virtual 接口(Open/Close/GetHdcConctStatus/ProcessOpenSubProc 等)行为不变 - 验证 ResponseMsgDispatcher 的 21 条消息回调注册和分发正确 - 验证 SubProcessController 的子进程管理功能(Open/Close/GetStatus) - 验证 TsdProcessController 的 TSD 进程管理功能(Open/Close/InitQs/UpdateProfilingConf) 3. **ABI 兼容性验证** - 验证对外 C API 符号(TsdOpen/TsdClose/GetHdcConctStatus 等 12 个)无变化 - 验证 ProcessModeManager 虚函数表(vtable)无变化 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 重构方案基于 Composition over Inheritance + Facade 设计模式,已通过专家代码审查(修复了 POD 成员未初始化和封装性问题),UT 774 passed 零回归,ABI 无变化。 See merge request: cann/runtime!3632 | 2 个月前 | |
fix: 优化 ERROR 日志枚举名称输出(#926) Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !4680 merge fix/enum-error-log-names into master fix: 优化 ERROR 日志枚举名称输出(#926) Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: # Pull Request ## 描述 部分 ERROR 日志仅输出枚举数值,定位问题时需要额外查询枚举定义,影响日志可读性和故障分析效率。本次统一优化相关日志:存在有效枚举名称时输出 枚举名称(原始值),同时保留原始数值用于识别异常输入。 主要变更如下: 1. 为 AICPU Schedule、AICPU Sharder、Queue Schedule 和 TSD 涉及的枚举补充名称转换能力。 2. 新增类型安全的 EnumNameTable Traits 注册表和统一 GetEnumName 查询接口;14 个自定义枚举由 switch 转为按枚举类型注册的静态 map,后续新增枚举只需补充对应特化。 3. 枚举名称转换接口统一返回 std::string,日志调用处通过 c_str() 传递字符串,不引入裸字符指针接口;未注册的枚举值统一返回 UNKNOWN。 4. protobuf 枚举优先复用生成的名称转换接口,避免重复维护映射关系;BQS 消息类型保留 UNKNOWN(原始值) 兜底。 5. SOMA、Dump 和 HCCL Protocol 等明确非法且无法获得有效名称的场景仅输出原始数值,避免打印无意义的枚举名称。 6. 补充 AICPU Sharder 构建及 UT/ST 的公共头文件搜索路径。 7. 精简 DgwClient::CheckConfigNum() 的冗余作用域和末尾 break,并合并 BqsServer::HandleBqsReqMsg() 的相邻日志字符串,使两个函数的 NBNC 均降至 50,不改变控制流及日志内容。 8. PR 变更已整理为单个有效提交。 本次仅整改 ERROR 级别的枚举日志,不改变业务流程、返回值及错误处理逻辑,也不扩大到协议字段等非枚举数值。 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 关联 Issue:https://gitcode.com/cann/runtime/issues/926 ## 如何测试 1. 对本次提交涉及的文件执行 pre-commit,检查通过。 2. tsd_client_utest、queue_schedule_main_ut、aicpu_sharder_utest 和 aicpu_aicpuschedule_utest 均编译通过。 3. 注册查表改造前新增失败用例,确认统一查询接口尚不存在;改造后该用例及未知值兜底检查通过。 4. 完整回归:AICPU Schedule 1480 个、AICPU Sharder 74 个、Queue Schedule 685 个、TSD 881 个用例均通过。 5. 使用 AICPU Sharder 的实际头文件和宏配置,以 C++11 标准对 aicpu_context.cc 执行语法编译检查,通过。 6. 移动仓内公共头后,生产目标 host_queue_schedule 的全部对象编译及可执行文件链接通过。 7. NBNC 调整后,DgwClient::CheckConfigNum() 和 BqsServer::HandleBqsReqMsg() 的 NBNC 均为 50。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档(本次变更不涉及用户文档,无需更新) - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本次变更范围限定为 AICPU Schedule、AICPU Sharder、Queue Schedule 和 TSD 中的 ERROR 级别枚举日志,不涉及业务流程、返回值和资源所有权变更。 See merge request: cann/runtime!4680 | 1 个月前 | |
fix:clean code Co-authored-by: liu-lu<www.liulu824910939@qq.com> # message auto-generated for no-merge-commit merge: !4869 merge master into master fix:clean code Created-by: liu-lu Commit-by: liu-lu Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 对 tsd 模块进行头文件依赖清理(clean code),主要变更如下: 1. **替换宽口径头文件**:将 #include "driver/ascend_hal.h" 替换为更精确的子模块头文件 - device_comm_agent.h:替换为 #include "driver/ascend_hal_base.h" - stub_dc.cpp:替换为 #include "driver/ascend_hal_base.h" + #include "driver/ascend_hal_error.h" 2. **移除未使用的 include**: - package_env_info.h:移除未使用的 #include "driver/ascend_hal.h" - package_manager.h:移除未使用的 #include "driver/ascend_hal.h" - package_env_info.cpp:移除未使用的 #include "driver/ascend_hal.h" 和 #include "error_manager.h" 3. **显式声明依赖**: - weak_ascend_hal.h:新增 #include "driver/ascend_hal_base.h" 和 #include "driver/ascend_hal_error.h" ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> #965 ## 如何测试 描述测试此变更的步骤和前提条件: 1. 执行全量编译构建,验证头文件替换后编译无报错 2. 运行 tsd 模块相关单元测试,确认功能无回归 3. 验证 device_comm、package_manager 模块加载和初始化流程正常 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本次变更仅涉及头文件 include 调整,不涉及任何功能逻辑变更。目标是降低头文件依赖耦合度,提升编译效率。 See merge request: cann/runtime!4869 | 1 个月前 | |
【PR】: 简要描述 process mode manager 上帝类重构 Co-authored-by: LiWei79<liwei174@huawei.com> # message auto-generated for no-merge-commit merge: !3632 merge package_manager into master 【PR】: 简要描述 process mode manager 上帝类重构 Created-by: LiWei79 Commit-by: LiWei79 Merged-by: cann-robot Description: # Pull Request ## 描述 对 ProcessModeManager 上帝类进行重构,将其拆分为 4 个单一职责的类,同时归档包处理文件到 basic_component/package_manager。 ### 主要变更 **1. ProcessModeManager God Class 拆分** - **提取 ProcessSharedContext** — 将 rspCode_/errMsg_/errorLog_/startOrStopFailCode_/openSubPid_/pidArry_/pidList_ 等共享响应状态提取为独立的 ProcessSharedContext 结构体 - **提取 ResponseMsgDispatcher** — 将 DeviceMsgProcess/ServerToClientMsgProc/PackageInfoMsgProc/CapabilityResMsgProc/PidQosMsgProc/StoreProcListStatus 等 21 条消息回调注册和响应处理逻辑提取为独立的 ResponseMsgDispatcher 类 - **提取 SubProcessController** — 将 ProcessOpenSubProc/ProcessCloseSubProc/ProcessCloseSubProcList/GetSubProcStatus/GetSubProcListStatus/RemoveFileOnDevice 等 SubProc 生命周期管理方法提取为独立的 SubProcessController 类 - **提取 TsdProcessController** — 将 Open/Close/GetHdcConctStatus/InitQs/UpdateProfilingConf/WaitRsp/BuildBaseMessageContext 等 TSD 进程生命周期管理方法提取为独立的 TsdProcessController 类 **2. PackageManager 抽取** - 将 ProcessModeManager 中的包管理功能解耦为独立的 PackageManager 类,以组合形式存在于 ProcessModeManager 中 - 将所有包处理相关文件从 common/ 和 tsdclient/ 归档到 basic_component/package_manager/ **3. Stub 文件整理** - 合并 stub_process_mode_nowin.cpp 到 tsd_process_controller.cpp - 迁移 stub_dc.cpp 到 common/stub/ - 删除 tsdclient/src/stub/ 空目录 ### 重构前后对比 | 指标 | 重构前 | 重构后 | |------|--------|--------| | ProcessModeManager.h 行数 | 229 | 166 | | ProcessModeManager.cpp 行数 | 783 | 114 | | ProcessModeManager 方法数 | 60+ | 16(薄委托) | | ProcessModeManager 数据成员 | 25+ | 6 | | 新增类 | - | ProcessSharedContext / ResponseMsgDispatcher / SubProcessController / TsdProcessController | ## 变更类型 请选择本次引入的变更类型: - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue #733 ## 如何测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行 cmake 配置和编译,验证 CMakeLists.txt 配置变更正确 - 验证 libtsdclient.so 能正确链接 2. **单元测试** - 执行 tsd_client_utest,验证 774 个测试用例全部通过 - 验证 ProcessModeManager 的所有 virtual 接口(Open/Close/GetHdcConctStatus/ProcessOpenSubProc 等)行为不变 - 验证 ResponseMsgDispatcher 的 21 条消息回调注册和分发正确 - 验证 SubProcessController 的子进程管理功能(Open/Close/GetStatus) - 验证 TsdProcessController 的 TSD 进程管理功能(Open/Close/InitQs/UpdateProfilingConf) 3. **ABI 兼容性验证** - 验证对外 C API 符号(TsdOpen/TsdClose/GetHdcConctStatus 等 12 个)无变化 - 验证 ProcessModeManager 虚函数表(vtable)无变化 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 重构方案基于 Composition over Inheritance + Facade 设计模式,已通过专家代码审查(修复了 POD 成员未初始化和封装性问题),UT 774 passed 零回归,ABI 无变化。 See merge request: cann/runtime!3632 | 2 个月前 | |
【PR】: 修改960下mc2_server.tar.gz无法下发 Co-authored-by: zhengchao0613<zhengchao45@huawei.com> # message auto-generated for no-merge-commit merge: !5277 merge master into master 【PR】: 修改960下mc2_server.tar.gz无法下发 Created-by: zhengchao0613 Commit-by: zhengchao0613 Merged-by: cann-robot Description: # Pull Request ## 描述 修改960下mc2_server.tar.gz无法下发 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.已基于patch验证功能修复 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!5277 | 21 天前 | |
refactor: PackageManager 消除循环依赖与反向分层依赖(#787) Co-authored-by: LiWei79<liwei174@huawei.com> # message auto-generated for no-merge-commit merge: !3970 merge package_new_loader into master refactor: PackageManager 消除循环依赖与反向分层依赖(#787) Created-by: LiWei79 Commit-by: LiWei79 Merged-by: cann-robot Description: # Pull Request ## 描述 重构 TSD PackageManager 及包管理内部组件,消除循环依赖和反向分层依赖: - 新增 PackageContext,集中管理响应码、设备状态、重试标志和 host/device check code 等共享状态。 - 移除 PackageLoader、PackageSender、PackageCheckCodeService 对 PackageManager 的回指,改为显式依赖协作。 - 收敛 PackageManager 中仅用于内部转发的接口,保留现有对外入口。 - 将 ProfilingMode、RunningMode、ChipType_t、ResponseCode 下沉到 basic_define.h,消除 basic_component 对 tsdclient 的反向 include。 - 同步调整 TSD 单元测试和相关 mock,不改变现有对外接口签名。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue #787 ## 如何测试 1. 执行 TSD 相关单元测试,提交记录显示 824 个 UT 全部通过。 2. 编译验证 PackageManager、PackageLoader、PackageSender、PackageCheckCodeService 和 tsdclient 的声明与实现一致。 3. 回归包配置加载、host/device check code 比较、包发送、插件版本比较及关闭后状态重置场景。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 本次不涉及对外接口或用户文档变更 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本次重构保持对外接口签名不变,主要调整 TSD 包管理模块内部依赖关系和状态归属。 See merge request: cann/runtime!3970 | 2 个月前 | |
feat:日志修改 Co-authored-by: liu-lu<www.liulu824910939@qq.com> # message auto-generated for no-merge-commit merge: !4608 merge master into master feat:日志修改 Created-by: liu-lu Commit-by: liu-lu Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 包含两部分内容:**日志文案规范化(69 个源文件)** 与 **增量 UT 覆盖补齐(21 个测试文件、33 个用例)**,针对 aicpu_sched 与 tsd 两个模块。 ### 1. 日志文案规范化(不改变业务逻辑) - **拼写与语法修正**:"no equal to" → "is not equal to"、"has already grant" → "has already granted"、"errorno" → "errno"、"doesn't has admin" → "doesn't have admin"、"Buffer initial failed" → "Buffer initialization failed" 等; - **补充关键上下文**:非法参数错误日志增加实际取值与合法范围(如 pid list size invalid:%u, valid range is [1, %u]、invalid thread index:%u, valid range [0, %zu)); - **补充度量单位**:blockSize / 内存大小等数值统一标注 bytes; - **修正事实性错误**:DestroyQueueKernel 路径日志误写为 DumpDataKernel;hdc_common 初始化失败日志补充 drvRet 与 maxSegment 阈值上下文; - **修复死代码(Bug)**:aicpu_schedule/core/aicpusd_event_process.cpp 的 ProcessMsgVersionEvent 中 if (ret != AICPU_SCHEDULE_OK) 恒为假(AicpuMsgVersionResponseToTs(const int32_t ret) 传值不回写),改为判断 rspRet(与 aicpu_cust_schedule 侧同名函数语义对齐),修复版本协商响应失败被静默吞掉的问题。 ### 2. 增量 UT 覆盖补齐 针对 CI 增量覆盖率报告(ut_cov_tsd.tar.gz / ut_cov_aicpusd.tar.gz)中全部 **28 行未覆盖修改行** 补充用例: - 非法入参分支:GetSubProcListStatus / CloseSubProcList / ExecuteClosePidList(nullptr、长度为 0、超上限); - 快速关闭模式:TsdProcessController::Close(QUICK_CLOSE_MODE) 不走设备侧收发; - 设备调用失败分支:halBuffInit(CreateGroupForMaster / CreateGrp)、halEschedSetEventPriority(empty→not empty / full→not full)、ioctl 失败(VF 模式)、SendUpdateProfilingRspToTsd / AicpuMsgVersionResponseToTs 响应失败等; - operator new[](nothrow)分配失败:hook 方式覆盖 QueueEnQueueBuff 的 buffIovec 分配失败分支; - 修正假通过用例:MBufferPoolAllocateFail 原 stub halBuffCreatePool 不回写 *mp 导致断言通过但未命中目标行,补出参回写; - 边界场景:VmHWM 非法值、ccpu 列表为空、HOME 路径超长(PATH_MAX)、重复注册 kernel、ExecuteClosePidList 分批失败等。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(日志文案规范化) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue #927 ## 如何测试 1. **UT 全量回归**:x86_64(Ubuntu 24.04,gcc 13.3)本地构建并运行 tsd(tsd_client_utest、stub_external_deps_utest)与 aicpu_sched 全部 14 个 UT 目标,共 **2947 个用例全部 PASSED**(tsd 885+4;aicpu_sched 2062,其中 aicpu_sched_sim_utest 需 root 运行,与 CI 环境一致); 2. **增量覆盖率复核**:gcov 逐行验证两份覆盖率报告中全部 28 行未覆盖修改行(tsd 5 行 + aicpu_sched 23 行),**28/28 全部命中**; 3. **内存检查**:新增/修改用例逐条测量峰值 RSS(对比各二进制空跑基线),最大 72.8MB(aicpu_aicpuschedule_utest),均低于 500MB 限制; 4. **格式门禁**:clang-format(仓库 .clang-format,ColumnLimit=120)检查通过。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档(本次无文档变更) - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 日志修改均为文案层面调整,唯一逻辑变更为 ProcessMsgVersionEvent 死代码修复(ret → rspRet),建议 reviewer 重点关注 src/aicpu_sched/aicpu_schedule/core/aicpusd_event_process.cpp; - UT 补充手法说明见 Issue #927 设计方案;其中 mockcpp 对虚成员函数不可打桩,采用子类注入方式(StubDeviceComm);私有成员访问依赖 #define private public 宏块内 include 顺序(aicpusd_drv_manager.h 已移入宏块)。 See merge request: cann/runtime!4608 | 1 个月前 | |
feat:日志修改 Co-authored-by: liu-lu<www.liulu824910939@qq.com> # message auto-generated for no-merge-commit merge: !4608 merge master into master feat:日志修改 Created-by: liu-lu Commit-by: liu-lu Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 包含两部分内容:**日志文案规范化(69 个源文件)** 与 **增量 UT 覆盖补齐(21 个测试文件、33 个用例)**,针对 aicpu_sched 与 tsd 两个模块。 ### 1. 日志文案规范化(不改变业务逻辑) - **拼写与语法修正**:"no equal to" → "is not equal to"、"has already grant" → "has already granted"、"errorno" → "errno"、"doesn't has admin" → "doesn't have admin"、"Buffer initial failed" → "Buffer initialization failed" 等; - **补充关键上下文**:非法参数错误日志增加实际取值与合法范围(如 pid list size invalid:%u, valid range is [1, %u]、invalid thread index:%u, valid range [0, %zu)); - **补充度量单位**:blockSize / 内存大小等数值统一标注 bytes; - **修正事实性错误**:DestroyQueueKernel 路径日志误写为 DumpDataKernel;hdc_common 初始化失败日志补充 drvRet 与 maxSegment 阈值上下文; - **修复死代码(Bug)**:aicpu_schedule/core/aicpusd_event_process.cpp 的 ProcessMsgVersionEvent 中 if (ret != AICPU_SCHEDULE_OK) 恒为假(AicpuMsgVersionResponseToTs(const int32_t ret) 传值不回写),改为判断 rspRet(与 aicpu_cust_schedule 侧同名函数语义对齐),修复版本协商响应失败被静默吞掉的问题。 ### 2. 增量 UT 覆盖补齐 针对 CI 增量覆盖率报告(ut_cov_tsd.tar.gz / ut_cov_aicpusd.tar.gz)中全部 **28 行未覆盖修改行** 补充用例: - 非法入参分支:GetSubProcListStatus / CloseSubProcList / ExecuteClosePidList(nullptr、长度为 0、超上限); - 快速关闭模式:TsdProcessController::Close(QUICK_CLOSE_MODE) 不走设备侧收发; - 设备调用失败分支:halBuffInit(CreateGroupForMaster / CreateGrp)、halEschedSetEventPriority(empty→not empty / full→not full)、ioctl 失败(VF 模式)、SendUpdateProfilingRspToTsd / AicpuMsgVersionResponseToTs 响应失败等; - operator new[](nothrow)分配失败:hook 方式覆盖 QueueEnQueueBuff 的 buffIovec 分配失败分支; - 修正假通过用例:MBufferPoolAllocateFail 原 stub halBuffCreatePool 不回写 *mp 导致断言通过但未命中目标行,补出参回写; - 边界场景:VmHWM 非法值、ccpu 列表为空、HOME 路径超长(PATH_MAX)、重复注册 kernel、ExecuteClosePidList 分批失败等。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(日志文案规范化) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue #927 ## 如何测试 1. **UT 全量回归**:x86_64(Ubuntu 24.04,gcc 13.3)本地构建并运行 tsd(tsd_client_utest、stub_external_deps_utest)与 aicpu_sched 全部 14 个 UT 目标,共 **2947 个用例全部 PASSED**(tsd 885+4;aicpu_sched 2062,其中 aicpu_sched_sim_utest 需 root 运行,与 CI 环境一致); 2. **增量覆盖率复核**:gcov 逐行验证两份覆盖率报告中全部 28 行未覆盖修改行(tsd 5 行 + aicpu_sched 23 行),**28/28 全部命中**; 3. **内存检查**:新增/修改用例逐条测量峰值 RSS(对比各二进制空跑基线),最大 72.8MB(aicpu_aicpuschedule_utest),均低于 500MB 限制; 4. **格式门禁**:clang-format(仓库 .clang-format,ColumnLimit=120)检查通过。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档(本次无文档变更) - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 日志修改均为文案层面调整,唯一逻辑变更为 ProcessMsgVersionEvent 死代码修复(ret → rspRet),建议 reviewer 重点关注 src/aicpu_sched/aicpu_schedule/core/aicpusd_event_process.cpp; - UT 补充手法说明见 Issue #927 设计方案;其中 mockcpp 对虚成员函数不可打桩,采用子类注入方式(StubDeviceComm);私有成员访问依赖 #define private public 宏块内 include 顺序(aicpusd_drv_manager.h 已移入宏块)。 See merge request: cann/runtime!4608 | 1 个月前 | |
feat:日志修改 Co-authored-by: liu-lu<www.liulu824910939@qq.com> # message auto-generated for no-merge-commit merge: !4608 merge master into master feat:日志修改 Created-by: liu-lu Commit-by: liu-lu Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 包含两部分内容:**日志文案规范化(69 个源文件)** 与 **增量 UT 覆盖补齐(21 个测试文件、33 个用例)**,针对 aicpu_sched 与 tsd 两个模块。 ### 1. 日志文案规范化(不改变业务逻辑) - **拼写与语法修正**:"no equal to" → "is not equal to"、"has already grant" → "has already granted"、"errorno" → "errno"、"doesn't has admin" → "doesn't have admin"、"Buffer initial failed" → "Buffer initialization failed" 等; - **补充关键上下文**:非法参数错误日志增加实际取值与合法范围(如 pid list size invalid:%u, valid range is [1, %u]、invalid thread index:%u, valid range [0, %zu)); - **补充度量单位**:blockSize / 内存大小等数值统一标注 bytes; - **修正事实性错误**:DestroyQueueKernel 路径日志误写为 DumpDataKernel;hdc_common 初始化失败日志补充 drvRet 与 maxSegment 阈值上下文; - **修复死代码(Bug)**:aicpu_schedule/core/aicpusd_event_process.cpp 的 ProcessMsgVersionEvent 中 if (ret != AICPU_SCHEDULE_OK) 恒为假(AicpuMsgVersionResponseToTs(const int32_t ret) 传值不回写),改为判断 rspRet(与 aicpu_cust_schedule 侧同名函数语义对齐),修复版本协商响应失败被静默吞掉的问题。 ### 2. 增量 UT 覆盖补齐 针对 CI 增量覆盖率报告(ut_cov_tsd.tar.gz / ut_cov_aicpusd.tar.gz)中全部 **28 行未覆盖修改行** 补充用例: - 非法入参分支:GetSubProcListStatus / CloseSubProcList / ExecuteClosePidList(nullptr、长度为 0、超上限); - 快速关闭模式:TsdProcessController::Close(QUICK_CLOSE_MODE) 不走设备侧收发; - 设备调用失败分支:halBuffInit(CreateGroupForMaster / CreateGrp)、halEschedSetEventPriority(empty→not empty / full→not full)、ioctl 失败(VF 模式)、SendUpdateProfilingRspToTsd / AicpuMsgVersionResponseToTs 响应失败等; - operator new[](nothrow)分配失败:hook 方式覆盖 QueueEnQueueBuff 的 buffIovec 分配失败分支; - 修正假通过用例:MBufferPoolAllocateFail 原 stub halBuffCreatePool 不回写 *mp 导致断言通过但未命中目标行,补出参回写; - 边界场景:VmHWM 非法值、ccpu 列表为空、HOME 路径超长(PATH_MAX)、重复注册 kernel、ExecuteClosePidList 分批失败等。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(日志文案规范化) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue #927 ## 如何测试 1. **UT 全量回归**:x86_64(Ubuntu 24.04,gcc 13.3)本地构建并运行 tsd(tsd_client_utest、stub_external_deps_utest)与 aicpu_sched 全部 14 个 UT 目标,共 **2947 个用例全部 PASSED**(tsd 885+4;aicpu_sched 2062,其中 aicpu_sched_sim_utest 需 root 运行,与 CI 环境一致); 2. **增量覆盖率复核**:gcov 逐行验证两份覆盖率报告中全部 28 行未覆盖修改行(tsd 5 行 + aicpu_sched 23 行),**28/28 全部命中**; 3. **内存检查**:新增/修改用例逐条测量峰值 RSS(对比各二进制空跑基线),最大 72.8MB(aicpu_aicpuschedule_utest),均低于 500MB 限制; 4. **格式门禁**:clang-format(仓库 .clang-format,ColumnLimit=120)检查通过。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档(本次无文档变更) - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 日志修改均为文案层面调整,唯一逻辑变更为 ProcessMsgVersionEvent 死代码修复(ret → rspRet),建议 reviewer 重点关注 src/aicpu_sched/aicpu_schedule/core/aicpusd_event_process.cpp; - UT 补充手法说明见 Issue #927 设计方案;其中 mockcpp 对虚成员函数不可打桩,采用子类注入方式(StubDeviceComm);私有成员访问依赖 #define private public 宏块内 include 顺序(aicpusd_drv_manager.h 已移入宏块)。 See merge request: cann/runtime!4608 | 1 个月前 | |
fix: 优化 ERROR 日志枚举名称输出(#926) Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !4680 merge fix/enum-error-log-names into master fix: 优化 ERROR 日志枚举名称输出(#926) Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: # Pull Request ## 描述 部分 ERROR 日志仅输出枚举数值,定位问题时需要额外查询枚举定义,影响日志可读性和故障分析效率。本次统一优化相关日志:存在有效枚举名称时输出 枚举名称(原始值),同时保留原始数值用于识别异常输入。 主要变更如下: 1. 为 AICPU Schedule、AICPU Sharder、Queue Schedule 和 TSD 涉及的枚举补充名称转换能力。 2. 新增类型安全的 EnumNameTable Traits 注册表和统一 GetEnumName 查询接口;14 个自定义枚举由 switch 转为按枚举类型注册的静态 map,后续新增枚举只需补充对应特化。 3. 枚举名称转换接口统一返回 std::string,日志调用处通过 c_str() 传递字符串,不引入裸字符指针接口;未注册的枚举值统一返回 UNKNOWN。 4. protobuf 枚举优先复用生成的名称转换接口,避免重复维护映射关系;BQS 消息类型保留 UNKNOWN(原始值) 兜底。 5. SOMA、Dump 和 HCCL Protocol 等明确非法且无法获得有效名称的场景仅输出原始数值,避免打印无意义的枚举名称。 6. 补充 AICPU Sharder 构建及 UT/ST 的公共头文件搜索路径。 7. 精简 DgwClient::CheckConfigNum() 的冗余作用域和末尾 break,并合并 BqsServer::HandleBqsReqMsg() 的相邻日志字符串,使两个函数的 NBNC 均降至 50,不改变控制流及日志内容。 8. PR 变更已整理为单个有效提交。 本次仅整改 ERROR 级别的枚举日志,不改变业务流程、返回值及错误处理逻辑,也不扩大到协议字段等非枚举数值。 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 关联 Issue:https://gitcode.com/cann/runtime/issues/926 ## 如何测试 1. 对本次提交涉及的文件执行 pre-commit,检查通过。 2. tsd_client_utest、queue_schedule_main_ut、aicpu_sharder_utest 和 aicpu_aicpuschedule_utest 均编译通过。 3. 注册查表改造前新增失败用例,确认统一查询接口尚不存在;改造后该用例及未知值兜底检查通过。 4. 完整回归:AICPU Schedule 1480 个、AICPU Sharder 74 个、Queue Schedule 685 个、TSD 881 个用例均通过。 5. 使用 AICPU Sharder 的实际头文件和宏配置,以 C++11 标准对 aicpu_context.cc 执行语法编译检查,通过。 6. 移动仓内公共头后,生产目标 host_queue_schedule 的全部对象编译及可执行文件链接通过。 7. NBNC 调整后,DgwClient::CheckConfigNum() 和 BqsServer::HandleBqsReqMsg() 的 NBNC 均为 50。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档(本次变更不涉及用户文档,无需更新) - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本次变更范围限定为 AICPU Schedule、AICPU Sharder、Queue Schedule 和 TSD 中的 ERROR 级别枚举日志,不涉及业务流程、返回值和资源所有权变更。 See merge request: cann/runtime!4680 | 1 个月前 | |
fix: 优化 ERROR 日志枚举名称输出(#926) Co-authored-by: zhaowenrui666<zhaowenrui7@huawei.com> # message auto-generated for no-merge-commit merge: !4680 merge fix/enum-error-log-names into master fix: 优化 ERROR 日志枚举名称输出(#926) Created-by: zhaowenrui666 Commit-by: zhaowenrui666 Merged-by: cann-robot Description: # Pull Request ## 描述 部分 ERROR 日志仅输出枚举数值,定位问题时需要额外查询枚举定义,影响日志可读性和故障分析效率。本次统一优化相关日志:存在有效枚举名称时输出 枚举名称(原始值),同时保留原始数值用于识别异常输入。 主要变更如下: 1. 为 AICPU Schedule、AICPU Sharder、Queue Schedule 和 TSD 涉及的枚举补充名称转换能力。 2. 新增类型安全的 EnumNameTable Traits 注册表和统一 GetEnumName 查询接口;14 个自定义枚举由 switch 转为按枚举类型注册的静态 map,后续新增枚举只需补充对应特化。 3. 枚举名称转换接口统一返回 std::string,日志调用处通过 c_str() 传递字符串,不引入裸字符指针接口;未注册的枚举值统一返回 UNKNOWN。 4. protobuf 枚举优先复用生成的名称转换接口,避免重复维护映射关系;BQS 消息类型保留 UNKNOWN(原始值) 兜底。 5. SOMA、Dump 和 HCCL Protocol 等明确非法且无法获得有效名称的场景仅输出原始数值,避免打印无意义的枚举名称。 6. 补充 AICPU Sharder 构建及 UT/ST 的公共头文件搜索路径。 7. 精简 DgwClient::CheckConfigNum() 的冗余作用域和末尾 break,并合并 BqsServer::HandleBqsReqMsg() 的相邻日志字符串,使两个函数的 NBNC 均降至 50,不改变控制流及日志内容。 8. PR 变更已整理为单个有效提交。 本次仅整改 ERROR 级别的枚举日志,不改变业务流程、返回值及错误处理逻辑,也不扩大到协议字段等非枚举数值。 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 关联 Issue:https://gitcode.com/cann/runtime/issues/926 ## 如何测试 1. 对本次提交涉及的文件执行 pre-commit,检查通过。 2. tsd_client_utest、queue_schedule_main_ut、aicpu_sharder_utest 和 aicpu_aicpuschedule_utest 均编译通过。 3. 注册查表改造前新增失败用例,确认统一查询接口尚不存在;改造后该用例及未知值兜底检查通过。 4. 完整回归:AICPU Schedule 1480 个、AICPU Sharder 74 个、Queue Schedule 685 个、TSD 881 个用例均通过。 5. 使用 AICPU Sharder 的实际头文件和宏配置,以 C++11 标准对 aicpu_context.cc 执行语法编译检查,通过。 6. 移动仓内公共头后,生产目标 host_queue_schedule 的全部对象编译及可执行文件链接通过。 7. NBNC 调整后,DgwClient::CheckConfigNum() 和 BqsServer::HandleBqsReqMsg() 的 NBNC 均为 50。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档(本次变更不涉及用户文档,无需更新) - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本次变更范围限定为 AICPU Schedule、AICPU Sharder、Queue Schedule 和 TSD 中的 ERROR 级别枚举日志,不涉及业务流程、返回值和资源所有权变更。 See merge request: cann/runtime!4680 | 1 个月前 | |
feat:日志修改 Co-authored-by: liu-lu<www.liulu824910939@qq.com> # message auto-generated for no-merge-commit merge: !4608 merge master into master feat:日志修改 Created-by: liu-lu Commit-by: liu-lu Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 包含两部分内容:**日志文案规范化(69 个源文件)** 与 **增量 UT 覆盖补齐(21 个测试文件、33 个用例)**,针对 aicpu_sched 与 tsd 两个模块。 ### 1. 日志文案规范化(不改变业务逻辑) - **拼写与语法修正**:"no equal to" → "is not equal to"、"has already grant" → "has already granted"、"errorno" → "errno"、"doesn't has admin" → "doesn't have admin"、"Buffer initial failed" → "Buffer initialization failed" 等; - **补充关键上下文**:非法参数错误日志增加实际取值与合法范围(如 pid list size invalid:%u, valid range is [1, %u]、invalid thread index:%u, valid range [0, %zu)); - **补充度量单位**:blockSize / 内存大小等数值统一标注 bytes; - **修正事实性错误**:DestroyQueueKernel 路径日志误写为 DumpDataKernel;hdc_common 初始化失败日志补充 drvRet 与 maxSegment 阈值上下文; - **修复死代码(Bug)**:aicpu_schedule/core/aicpusd_event_process.cpp 的 ProcessMsgVersionEvent 中 if (ret != AICPU_SCHEDULE_OK) 恒为假(AicpuMsgVersionResponseToTs(const int32_t ret) 传值不回写),改为判断 rspRet(与 aicpu_cust_schedule 侧同名函数语义对齐),修复版本协商响应失败被静默吞掉的问题。 ### 2. 增量 UT 覆盖补齐 针对 CI 增量覆盖率报告(ut_cov_tsd.tar.gz / ut_cov_aicpusd.tar.gz)中全部 **28 行未覆盖修改行** 补充用例: - 非法入参分支:GetSubProcListStatus / CloseSubProcList / ExecuteClosePidList(nullptr、长度为 0、超上限); - 快速关闭模式:TsdProcessController::Close(QUICK_CLOSE_MODE) 不走设备侧收发; - 设备调用失败分支:halBuffInit(CreateGroupForMaster / CreateGrp)、halEschedSetEventPriority(empty→not empty / full→not full)、ioctl 失败(VF 模式)、SendUpdateProfilingRspToTsd / AicpuMsgVersionResponseToTs 响应失败等; - operator new[](nothrow)分配失败:hook 方式覆盖 QueueEnQueueBuff 的 buffIovec 分配失败分支; - 修正假通过用例:MBufferPoolAllocateFail 原 stub halBuffCreatePool 不回写 *mp 导致断言通过但未命中目标行,补出参回写; - 边界场景:VmHWM 非法值、ccpu 列表为空、HOME 路径超长(PATH_MAX)、重复注册 kernel、ExecuteClosePidList 分批失败等。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(日志文案规范化) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue #927 ## 如何测试 1. **UT 全量回归**:x86_64(Ubuntu 24.04,gcc 13.3)本地构建并运行 tsd(tsd_client_utest、stub_external_deps_utest)与 aicpu_sched 全部 14 个 UT 目标,共 **2947 个用例全部 PASSED**(tsd 885+4;aicpu_sched 2062,其中 aicpu_sched_sim_utest 需 root 运行,与 CI 环境一致); 2. **增量覆盖率复核**:gcov 逐行验证两份覆盖率报告中全部 28 行未覆盖修改行(tsd 5 行 + aicpu_sched 23 行),**28/28 全部命中**; 3. **内存检查**:新增/修改用例逐条测量峰值 RSS(对比各二进制空跑基线),最大 72.8MB(aicpu_aicpuschedule_utest),均低于 500MB 限制; 4. **格式门禁**:clang-format(仓库 .clang-format,ColumnLimit=120)检查通过。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档(本次无文档变更) - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 日志修改均为文案层面调整,唯一逻辑变更为 ProcessMsgVersionEvent 死代码修复(ret → rspRet),建议 reviewer 重点关注 src/aicpu_sched/aicpu_schedule/core/aicpusd_event_process.cpp; - UT 补充手法说明见 Issue #927 设计方案;其中 mockcpp 对虚成员函数不可打桩,采用子类注入方式(StubDeviceComm);私有成员访问依赖 #define private public 宏块内 include 顺序(aicpusd_drv_manager.h 已移入宏块)。 See merge request: cann/runtime!4608 | 1 个月前 | |
【PR】: 简要描述 process mode manager 上帝类重构 Co-authored-by: LiWei79<liwei174@huawei.com> # message auto-generated for no-merge-commit merge: !3632 merge package_manager into master 【PR】: 简要描述 process mode manager 上帝类重构 Created-by: LiWei79 Commit-by: LiWei79 Merged-by: cann-robot Description: # Pull Request ## 描述 对 ProcessModeManager 上帝类进行重构,将其拆分为 4 个单一职责的类,同时归档包处理文件到 basic_component/package_manager。 ### 主要变更 **1. ProcessModeManager God Class 拆分** - **提取 ProcessSharedContext** — 将 rspCode_/errMsg_/errorLog_/startOrStopFailCode_/openSubPid_/pidArry_/pidList_ 等共享响应状态提取为独立的 ProcessSharedContext 结构体 - **提取 ResponseMsgDispatcher** — 将 DeviceMsgProcess/ServerToClientMsgProc/PackageInfoMsgProc/CapabilityResMsgProc/PidQosMsgProc/StoreProcListStatus 等 21 条消息回调注册和响应处理逻辑提取为独立的 ResponseMsgDispatcher 类 - **提取 SubProcessController** — 将 ProcessOpenSubProc/ProcessCloseSubProc/ProcessCloseSubProcList/GetSubProcStatus/GetSubProcListStatus/RemoveFileOnDevice 等 SubProc 生命周期管理方法提取为独立的 SubProcessController 类 - **提取 TsdProcessController** — 将 Open/Close/GetHdcConctStatus/InitQs/UpdateProfilingConf/WaitRsp/BuildBaseMessageContext 等 TSD 进程生命周期管理方法提取为独立的 TsdProcessController 类 **2. PackageManager 抽取** - 将 ProcessModeManager 中的包管理功能解耦为独立的 PackageManager 类,以组合形式存在于 ProcessModeManager 中 - 将所有包处理相关文件从 common/ 和 tsdclient/ 归档到 basic_component/package_manager/ **3. Stub 文件整理** - 合并 stub_process_mode_nowin.cpp 到 tsd_process_controller.cpp - 迁移 stub_dc.cpp 到 common/stub/ - 删除 tsdclient/src/stub/ 空目录 ### 重构前后对比 | 指标 | 重构前 | 重构后 | |------|--------|--------| | ProcessModeManager.h 行数 | 229 | 166 | | ProcessModeManager.cpp 行数 | 783 | 114 | | ProcessModeManager 方法数 | 60+ | 16(薄委托) | | ProcessModeManager 数据成员 | 25+ | 6 | | 新增类 | - | ProcessSharedContext / ResponseMsgDispatcher / SubProcessController / TsdProcessController | ## 变更类型 请选择本次引入的变更类型: - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue #733 ## 如何测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行 cmake 配置和编译,验证 CMakeLists.txt 配置变更正确 - 验证 libtsdclient.so 能正确链接 2. **单元测试** - 执行 tsd_client_utest,验证 774 个测试用例全部通过 - 验证 ProcessModeManager 的所有 virtual 接口(Open/Close/GetHdcConctStatus/ProcessOpenSubProc 等)行为不变 - 验证 ResponseMsgDispatcher 的 21 条消息回调注册和分发正确 - 验证 SubProcessController 的子进程管理功能(Open/Close/GetStatus) - 验证 TsdProcessController 的 TSD 进程管理功能(Open/Close/InitQs/UpdateProfilingConf) 3. **ABI 兼容性验证** - 验证对外 C API 符号(TsdOpen/TsdClose/GetHdcConctStatus 等 12 个)无变化 - 验证 ProcessModeManager 虚函数表(vtable)无变化 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 重构方案基于 Composition over Inheritance + Facade 设计模式,已通过专家代码审查(修复了 POD 成员未初始化和封装性问题),UT 774 passed 零回归,ABI 无变化。 See merge request: cann/runtime!3632 | 2 个月前 | |
refactor: PackageManager 消除循环依赖与反向分层依赖(#787) Co-authored-by: LiWei79<liwei174@huawei.com> # message auto-generated for no-merge-commit merge: !3970 merge package_new_loader into master refactor: PackageManager 消除循环依赖与反向分层依赖(#787) Created-by: LiWei79 Commit-by: LiWei79 Merged-by: cann-robot Description: # Pull Request ## 描述 重构 TSD PackageManager 及包管理内部组件,消除循环依赖和反向分层依赖: - 新增 PackageContext,集中管理响应码、设备状态、重试标志和 host/device check code 等共享状态。 - 移除 PackageLoader、PackageSender、PackageCheckCodeService 对 PackageManager 的回指,改为显式依赖协作。 - 收敛 PackageManager 中仅用于内部转发的接口,保留现有对外入口。 - 将 ProfilingMode、RunningMode、ChipType_t、ResponseCode 下沉到 basic_define.h,消除 basic_component 对 tsdclient 的反向 include。 - 同步调整 TSD 单元测试和相关 mock,不改变现有对外接口签名。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue #787 ## 如何测试 1. 执行 TSD 相关单元测试,提交记录显示 824 个 UT 全部通过。 2. 编译验证 PackageManager、PackageLoader、PackageSender、PackageCheckCodeService 和 tsdclient 的声明与实现一致。 3. 回归包配置加载、host/device check code 比较、包发送、插件版本比较及关闭后状态重置场景。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 本次不涉及对外接口或用户文档变更 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本次重构保持对外接口签名不变,主要调整 TSD 包管理模块内部依赖关系和状态归属。 See merge request: cann/runtime!3970 | 2 个月前 | |
【PR】: 简要描述 process mode manager 上帝类重构 Co-authored-by: LiWei79<liwei174@huawei.com> # message auto-generated for no-merge-commit merge: !3632 merge package_manager into master 【PR】: 简要描述 process mode manager 上帝类重构 Created-by: LiWei79 Commit-by: LiWei79 Merged-by: cann-robot Description: # Pull Request ## 描述 对 ProcessModeManager 上帝类进行重构,将其拆分为 4 个单一职责的类,同时归档包处理文件到 basic_component/package_manager。 ### 主要变更 **1. ProcessModeManager God Class 拆分** - **提取 ProcessSharedContext** — 将 rspCode_/errMsg_/errorLog_/startOrStopFailCode_/openSubPid_/pidArry_/pidList_ 等共享响应状态提取为独立的 ProcessSharedContext 结构体 - **提取 ResponseMsgDispatcher** — 将 DeviceMsgProcess/ServerToClientMsgProc/PackageInfoMsgProc/CapabilityResMsgProc/PidQosMsgProc/StoreProcListStatus 等 21 条消息回调注册和响应处理逻辑提取为独立的 ResponseMsgDispatcher 类 - **提取 SubProcessController** — 将 ProcessOpenSubProc/ProcessCloseSubProc/ProcessCloseSubProcList/GetSubProcStatus/GetSubProcListStatus/RemoveFileOnDevice 等 SubProc 生命周期管理方法提取为独立的 SubProcessController 类 - **提取 TsdProcessController** — 将 Open/Close/GetHdcConctStatus/InitQs/UpdateProfilingConf/WaitRsp/BuildBaseMessageContext 等 TSD 进程生命周期管理方法提取为独立的 TsdProcessController 类 **2. PackageManager 抽取** - 将 ProcessModeManager 中的包管理功能解耦为独立的 PackageManager 类,以组合形式存在于 ProcessModeManager 中 - 将所有包处理相关文件从 common/ 和 tsdclient/ 归档到 basic_component/package_manager/ **3. Stub 文件整理** - 合并 stub_process_mode_nowin.cpp 到 tsd_process_controller.cpp - 迁移 stub_dc.cpp 到 common/stub/ - 删除 tsdclient/src/stub/ 空目录 ### 重构前后对比 | 指标 | 重构前 | 重构后 | |------|--------|--------| | ProcessModeManager.h 行数 | 229 | 166 | | ProcessModeManager.cpp 行数 | 783 | 114 | | ProcessModeManager 方法数 | 60+ | 16(薄委托) | | ProcessModeManager 数据成员 | 25+ | 6 | | 新增类 | - | ProcessSharedContext / ResponseMsgDispatcher / SubProcessController / TsdProcessController | ## 变更类型 请选择本次引入的变更类型: - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue #733 ## 如何测试 根据代码变更,测试场景如下: 1. **编译构建测试** - 执行 cmake 配置和编译,验证 CMakeLists.txt 配置变更正确 - 验证 libtsdclient.so 能正确链接 2. **单元测试** - 执行 tsd_client_utest,验证 774 个测试用例全部通过 - 验证 ProcessModeManager 的所有 virtual 接口(Open/Close/GetHdcConctStatus/ProcessOpenSubProc 等)行为不变 - 验证 ResponseMsgDispatcher 的 21 条消息回调注册和分发正确 - 验证 SubProcessController 的子进程管理功能(Open/Close/GetStatus) - 验证 TsdProcessController 的 TSD 进程管理功能(Open/Close/InitQs/UpdateProfilingConf) 3. **ABI 兼容性验证** - 验证对外 C API 符号(TsdOpen/TsdClose/GetHdcConctStatus 等 12 个)无变化 - 验证 ProcessModeManager 虚函数表(vtable)无变化 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 重构方案基于 Composition over Inheritance + Facade 设计模式,已通过专家代码审查(修复了 POD 成员未初始化和封装性问题),UT 774 passed 零回归,ABI 无变化。 See merge request: cann/runtime!3632 | 2 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 21 天前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 |