| fix: remove redundant ops kernel initialization and fix log
Co-authored-by: wangyuchen<wangyuchen38@huawei.com>
# message auto-generated for no-merge-commit merge:
!3058 merge fix/reduce_redundant_log into develop
fix: remove redundant ops kernel initialization and fix log
Created-by: yuchen97
Commit-by: wangyuchen
Merged-by: cann-robot
Description: # Pull Request
## 描述
OpsKernelManager::GetOpsKernelInfo 中 ops_kernel_info_ 缓存未命中时触发 InitOpsKernelInfo 全量重建,导致 FuncPerfScope 和 GEEVENT 日志在部分场景重复打印。
**根因:**
GetOpsKernelInfo 在未找到 op_type 时调用 InitOpsKernelInfo(),该函数会清空 ops_kernel_info_ 并从所有 engine store 重刷全量 op info,每次都会打日志。如果查询的 op_type 不在任何引擎中注册,每次调用都会触发重建和日志。
**方案(方案A):**
1. 去掉 GetOpsKernelInfo 中的 InitOpsKernelInfo 回退,未命中直接返回空
2. RefreshOpsKernelInfo 内部调用 InitOpsKernelInfo,保证 store 刷新后缓存同步重建
3. InitOpsKernelInfo 增加 is_refresh 参数区分 Init/Refresh 来源
4. 测试框架中依赖懒初始化的调用改为显式 RefreshOpsKernelInfo
## 变更类型
- [x] 🐛 Bug 修复
- [ ] ✨ 新功能
- [ ] 💄 代码风格更新
- [x] ♻️ 重构
- [ ] 📦 构建过程或辅助工具的变动
- [ ] 📝 文档内容更新
## 如何测试
1. 编译 ut_libge_common_utest 验证 UT 通过
2. 原有场景日志不再重复打印 GEEVENT
3. 修复OpsKernelStore打桩,不建议直接修改 OpsKernelManager 私有成员变量,否则 RefreshOpsKernelInfo 之后会清空不是来自 OpsKernelStore 的 OpsInfo
## 核对清单
- [x] 我的代码遵循了项目的代码风格
- [x] 我已对代码进行了自测
- [x] 我已更新了相关的文档
- [x] 我在标题中使用了合适的类型标签
- [x] 我已经详细阅读了贡献指南
## 其他信息
详见相关分析讨论。
See merge request: cann/ge!3058 | 11 天前 |