| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
refactor: 移除 FunctionCompile 对 numa 配置的依赖,资源类型改为编译期固定生成 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !4424 merge refactor/remove-numa-config-dep into develop refactor: 移除 FunctionCompile 对 numa 配置的依赖,资源类型改为编译期固定生成 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: # Pull Request ## 描述 移除 CompileConfigJson::GetResourceTypeFromNumaConfig,FunctionCompile 中资源类型改为编译期固定生成 Ascend + host(X86/Aarch),消除对 numa 配置 JSON 的不必要运行时依赖。 主要变更: - 删除 GetResourceTypeFromNumaConfig 函数(唯一读取 OPTION_NUMA_CONFIG 的非测试代码),资源类型固定为 {kResourceTypeAscend, ExecutionRuntime::IsX86() ? kResourceTypeX86 : kResourceTypeAarch} - 删除 DeployLocation 类,将 IsX86() 静态方法迁移到 ExecutionRuntime 中 - 清理 compile_config_json.cc 中 ge_global_options.h/ge_types.h 无用 include - 清理 UT 测试中冗余的 OPTION_NUMA_CONFIG 设置代码 - 更新 dflow.md 文档中 _dflow_runnable_resource 属性描述 ## 变更类型 - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) ## 关联的Issue ## 如何测试 1. 编译 data_flow_base、dflow_runner、npu_executor_static(deployer)库 2. 编译并运行 ut_libge_helper_utest UT 测试 3. 编译 helper_runtime_test ST 测试 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 **验证结果**: - data_flow_base 编译通过 - dflow_runner 编译通过 - npu_executor_static(deployer)编译通过 - ut_libge_helper_utest 编译通过,83 个测试用例全部 PASSED - helper_runtime_test(ST)编译通过 **行为变化说明**:之前若 numa 配置只含 Ascend,则只编译 Ascend;之后始终编译两种类型。但 CompileAllResourceType 已有容错(toolchain 不存在则 skip),不会因多编译一种类型而失败。 See merge request: cann/ge!4424 | 1 个月前 | |
fix: VerifyIpaddr使用精确IP匹配替代子串匹配,修复IP白名单绕过漏洞 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !3754 merge fix/verify-ipaddr-exact-match into develop fix: VerifyIpaddr使用精确IP匹配替代子串匹配,修复IP白名单绕过漏洞 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: # Pull Request ## 描述 修复 dflow deployer daemon 中 VerifyIpaddr 方法的 IP 白名单校验漏洞。 原实现使用 peer_uri.find(config.ipaddr) != std::string::npos 子串匹配,存在绕过风险: - 配置 192.168.1.1 时,192.168.1.100 也会匹配成功 - 配置 10.0.0.1 时,210.0.0.1 也会匹配成功 修复方案:复用已有的 DaemonClientManager::GetClientIpAndPort 方法从 peer_uri(格式 ipv4:ip:port)中精确提取 IP 地址,然后做精确字符串匹配。同时将 ClientAddr 和 GetClientIpAndPort 从 private 移为 public 以便复用。 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue ## 如何测试 1. 配置远程节点 IP 白名单为 10.216.56.15 2. 从 10.216.56.15 发起连接,验证通过 3. 从 10.216.56.150 发起连接,验证被拒绝(旧代码会误放行) 4. 从 210.216.56.15 发起连接,验证被拒绝(旧代码会误放行) 5. 运行 UT TestVerifyIpaddrExactMatch 用例验证精确匹配和绕过场景 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效Commit的合并等 ## 其他信息 See merge request: cann/ge!3754 | 2 个月前 | |
fix: 修复 DeployContext transfer_queues_ 和 tansfer_routes_ 数据竞争 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !4467 merge fix/dflow-deploy-context-race into develop fix: 修复 DeployContext transfer_queues_ 和 tansfer_routes_ 数据竞争 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: ## 描述 修复 DeployContext 中 transfer_queues_ 和 tansfer_routes_ 的数据竞争和原子性违规问题。 多个 ThreadPool worker 线程并发调用 GetOrCreateTransferQueue 和 ProcessSharedContent 时,对 std::map 成员进行无锁的 find→CreateQueue→insert 序列,导致: 1. **数据竞争**:std::map 红黑树并发写 → 堆损坏/崩溃 2. **原子性违规**:重复执行 HService::CreateQueue(非幂等设备资源分配)→ rtMemQueue 句柄永久泄漏 ## 变更类型 - [x] 🐛 Bug 修复 ## 关联的Issue Closes cann/ge#3 ## 如何测试 1. bash build.sh --dflow 编译通过 2. 分析确认:HService::CreateQueue 不回调 DeployContext、不获取 DeployContext::mu_、不阻塞,加 mu_ 锁不会引入死锁 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 ### 修改内容 1. GetOrCreateTransferQueue:函数入口加 std::lock_guard<std::mutex> lk(mu_),保护 find→CreateQueue→insert 整个序列 2. ProcessSharedContent:tansfer_routes_ 的 find→Deploy→insert 序列加 mu_ 锁 3. Finalize:transfer_queues_ 和 tansfer_routes_ 使用 swap 模式,锁内 swap 出局部变量后锁外销毁资源,避免与并发写入竞争 ### 死锁分析 - HService::CreateQueue 是独立单例,不回调 DeployContext,不获取 DeployContext::mu_,无锁序环 - HeterogeneousExchangeDeployer::Deploy 同理,不回调 DeployContext - Finalize 的 swap 模式确保锁内仅做 O(1) swap,锁外才调用可能阻塞的 DestroyQueue/Undeploy See merge request: cann/ge!4467 | 1 个月前 | |
fix: dflow对aclInit重复初始化场景做兼容处理 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !4441 merge fix/dflow-acl-repeat-init into develop fix: dflow对aclInit重复初始化场景做兼容处理 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: # Pull Request ## 描述 dflow 两处 aclInit 调用(dflow_api.cc 的 DFlowInitialize 和 engine_daemon.cc 的 InitializeWithArgs)用进程内局部 acl_initialized flag 判断是否已初始化,存在两个问题: ### 问题1:重复初始化被误判为致命错误 当同进程其他组件已调过 aclInit() 时,dflow 重复调用会得到 ACL_ERROR_REPEAT_INITIALIZE(100002),被 ret != ACL_SUCCESS 误判为致命错误返回 FAILED。按 ACL 文档定义,此返回码表示"重复初始化或重复加载",ACL 已处于正确的已初始化状态,不应视为错误。 ### 问题2:重复初始化场景下误调用 aclFinalize aclInit 返回 ACL_ERROR_REPEAT_INITIALIZE 时表示外部已初始化 ACL,但 dflow 仍将 acl_initialized 置为 true,导致 DFlowFinalize/EngineDaemon::Finalize 时调用 aclFinalize 把外部初始化的 ACL 给 teardown 了。 ### 修复方案 1. **兼容重复初始化**:两处调用点将 ACL_ERROR_REPEAT_INITIALIZE 当成功处理(置 acl_initialized = true,继续执行),同时失败日志补充 acl 返回码便于定位 2. **正确管理 ACL 生命周期**:引入 acl_owned_by_dflow 标志区分 ACL 生命周期归属,仅当 dflow 自己 aclInit 成功(返回 ACL_SUCCESS)时才置 true,Finalize 时仅在该标志为 true 时才调用 aclFinalize | 场景 | aclInit 返回 | acl_owned_by_dflow | Finalize 时调 aclFinalize? | |------|---------------|---------------------|-------------------------------| | dflow 自己初始化 | ACL_SUCCESS | true | 是 | | 外部已初始化 | ACL_ERROR_REPEAT_INITIALIZE | false | 否 | | 初始化失败 | 其他错误码 | false | 否 | ## 变更类型 - [x] 🐛 Bug 修复 ## 关联的Issue ## 如何测试 ### UT(ut_libge_helper_utest) 1. DFlowInitialize_acl_repeat_init:mock aclInit 返回 ACL_ERROR_REPEAT_INITIALIZE,断言 DFlowInitialize 返回 SUCCESS,且 DFlowFinalize 后不调用 aclFinalize 2. DFlowInitialize_acl_init_failed:mock aclInit 返回 ACL_ERROR_INVALID_PARAM,断言 DFlowInitialize 返回 FAILED,且不调用 aclFinalize 3. TestEngineDaemonAclRepeatInit:同上,针对 EngineDaemon::InitializeWithArgs 4. TestEngineDaemonAclInitFailed:同上,针对 EngineDaemon::InitializeWithArgs ### ST(helper_runtime_test) 1. DataFlowApiTest.DFlowInitialize_acl_repeat_init:同 UT 场景1 2. DataFlowApiTest.DFlowInitialize_acl_init_failed:同 UT 场景2 3. STEST_helper_runtime.TestEngineDaemonAclRepeatInit:同 UT 场景3 4. STEST_helper_runtime.TestEngineDaemonAclInitFailed:同 UT 场景4 ### 覆盖率 UT 和 ST 新增分支覆盖率均为 **100%**(4/4 分支),覆盖了 ACL_SUCCESS、ACL_ERROR_REPEAT_INITIALIZE、其他错误码三个路径。 ### 回归验证 - UT 28 个相关用例全部通过 - ST 8 个相关用例全部通过 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/ge!4441 | 1 个月前 | |
refactor: 删除废弃的 FlowNodeBatchMemCfg 内存配置链路 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !3820 merge ln_0224 into develop refactor: 删除废弃的 FlowNodeBatchMemCfg 内存配置链路 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: # Pull Request ## 描述 FlowNodeBatchMemCfg 内存配置整条链路(JSON deploy_mem_info 解析 → proto model_mem_size 字段传递)属于功能废弃后遗留的死代码:接收端 FlowModelReceiver::UpdateDeployPlan(flow_model_receiver.cc)完全不读取 model_mem_size 字段,数据只解析传递无实际消费。 本次删除完整链路: - **proto 层**:deployer.proto 中 ModelMemSize message 及 UpdateDeployPlanRequest.model_mem_size 字段 - **编译期**:FlowNodeBatchMemCfg 结构体、CheckAndProcessMemCfg/SetMemCfgRecord 函数、deploy_mem_info JSON 解析、ATTR_NAME_DATA_FLOW_DEVICE_MEM_CFG 属性传递链路 - **部署期**:FlowModel::SetLogicDeviceToMemCfg/GetLogicDeviceToMemCfg 及成员、flow_model_sender 中设置 proto model_mem_size 的代码 - **测试**:删除专门测 mem limit 的 UT/ST 用例,清理其余用例中的 deploy_mem_info JSON 块 ## 变更类型 请选择本次引入的变更类型: - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue ## 如何测试 1. 增量编译 flow_graph target 通过(含 compile_config_json、data_flow_graph_auto_deployer、flow_model.h 改动) ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 共删除 606 行废弃代码,涉及 11 个文件。 See merge request: cann/ge!3820 | 2 个月前 | |
build: 将dflow链接目标adump_server替换为ascend_dump和adump_headers Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !3900 merge fix/dflow-adump-link-target into develop build: 将dflow链接目标adump_server替换为ascend_dump和adump_headers Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: # Pull Request ## 描述 将 dflow/deployer/CMakeLists.txt 中三个目标(npu_executor_static、npu_executor_main、host_cpu_executor_main)的 adump_server 链接目标替换为 ascend_dump(动态库)和 adump_headers(头文件接口库),与 base/CMakeLists.txt 的链接方式保持一致。 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue ## 如何测试 1. 执行 bash build.sh --ge_executor 构建 dflow 执行器包 2. 确认 npu_executor_main、host_cpu_executor_main、npu_executor_static 三个目标链接成功 3. 确认链接产物中 libascend_dump.so 被正确链接,libadump_server.a 不再被引用 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/ge!3900 | 2 个月前 | |
fix: precommit整改 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !3726 merge dev-precommit into develop fix: precommit整改 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 precommit整改 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.NA ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!3726 | 3 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 个月前 |