| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat: trace 代码同步,打通 cpu_detect/trace_server 编译 (#815) Co-authored-by: GuoWenbo<guowenbo13@h-partners.com> # message auto-generated for no-merge-commit merge: !4176 merge feature-issue-815 into master feat: trace 代码同步,打通 cpu_detect/trace_server 编译 (#815) Created-by: GuoWenbo Commit-by: GuoWenbo Merged-by: cann-robot Description: ## 需求 关联 issue: #815 打通 trace 仓中此前被注释、未参与编译的产物(cpu_detect、trace_server、libutrace.so),并对 libutrace.so 做归一化:device 与 host 分别以不同源文件集编译,产物统一命名为 libascend_trace.so,libutrace.so 为兼容性保留。 ## 改动说明 源码文件按 issue 附带 diff 照搬。CMakeLists 按本仓实际路径与目标名适配: | 适配点 | 原 diff | 本仓 | |---|---|---| | libc_sec 头文件 | ${TOP_DIR}/abl/libc_sec/include(TOP_DIR 未定义) | ${LIBC_SEC_HEADER} | | trace_server 头文件 | ../../inc/utrace、../../inc/trace_server、${RUNTIME_DIR}/inc/driver | inc/toolchain、pkg_inc/driver、pkg_inc/trace | | cpu_detect 头文件 | ../inc/cpu_detect | ../inc/toolchain,并补 ${ATRACE_DIR}/common | | hal 链接 | 无条件 ascend_hal | PRODUCT_SIDE/PRODUCT 生成式表达式(与 utrace 一致) | | cpu_detect 依赖库 | 裸路径 slog.so、libc_sec.so | unified_dlog、c_sec 目标 | | PRODUCT 型号 | ascend910_95 | ascend950(对齐本仓其余模块) | 其中 hal 链接一项,trace_server 与 cpu_detect 无条件链接 ascend_hal 会导致 host 侧编译失败(host 仅有 stub),已改用本仓既有写法。 ## 归一化实际编译效果核对 不止于「编译通过」,已核对产物构成是否真正符合 issue 的归一化要求: | 检查项 | host | device_default | |---|---|---| | libascend_trace.so 目标文件数 | 51 | 105 | | atrace 专属源(atrace_client_api 等) | 13 | 0 | | utrace 专属源(utrace_socket 等) | 0 | 13 | | ATRACE_HOST / HOST_ALOG 宏 | 有 | 无 | | ATRACE_ROOT_PATH 宏 | 无 | 有 | | hal 链接实际解析 | cmake/stub/libascend_hal.so | 不链 hal(实测未解析 hal 符号数为 0) | | 导出 API 符号 | Atrace* 25 个 | Atrace* 25 个 | libascend_trace.so 的两条路径分别对齐 master 原有 atrace_share(host)与 utrace_share(device_default)的源文件集,两者仅通过 ATRACE_API/UTRACE_API 宏切换对外符号名,这正是归一化的实现方式:同一份实现,两种符号导出。 ## cpu_detect 与 trace_server 以 ENABLE_OPEN_SRC 门控 cpu_detect 无条件编译 185 个 AArch64 .S 文件并附加 -march=armv8.3-a+crc+crypto+fp16,目录内 CMAKE_SYSTEM_PROCESSOR 出现 0 次、无任何架构守卫。在 x86_64 host 构建下宿主 gcc 会拒绝该 -march 值并无法汇编 AArch64 指令(STP X1, X2, [SP, #-16]!),属本 PR 打开该目录后引入的回归——感谢 @zhangpengpeng8 指出。 现两者置于 if (NOT ENABLE_OPEN_SRC) 内。build.sh 的 build_rts() 传入 -DENABLE_OPEN_SRC=True,故正式构建路径不再编译,x86 风险消除;内部构建(不带该宏)仍产出 libcpu_detect.so 与 libutrace_server.so。 需 reviewer 留意的取舍:trace_server 本身不含 AArch64 汇编、无 x86 障碍,对它门控属「暂不作为开源交付件」的产品决策而非技术必需。issue 点名打通的三项中,cpu_detect 与 trace_server 在 build.sh 路径下不产出交付件,仅保证内部构建可编译。若二者应随开源版交付,则 trace_server 的门控可去掉、cpu_detect 需改为按 CMAKE_SYSTEM_PROCESSOR 门控。 UT 不受影响:cpu_detect UT 使用 stub/cpu_detect_testcase_stub.c,.S 引用数与 -march 出现数均为 0;且 build_rts() 同时传入 ENABLE_UT,实测该组合下四个 UT 目标均正常编译运行。 ## 删除 UT 下重复的 cpu_detect 头文件 删除 tests/ut/atrace/ut/cpu_detect/stub/ 下的 cpu_detect.h 与 cpu_detect_types.h。 该 UT 的 include 顺序中 stub/ 先于 inc/toolchain,故此前 UT 实际编译的是 stub 版本,而其错误码与本 PR 新增的对外头文件冲突: | 宏 | stub 头 | 对外头文件(出货用) | |---|---|---| | CPUD_ERROR_INIT | -11 | 10 | | CPUD_ERROR_TESTCASE | -6 | 100 | | CPUD_ERROR_CGROUP_BIND | -7 | 50 | | CPUD_DETECT_MAX_TIME | 3600 | 604800 | 即 UT 校验的契约与出货 libcpu_detect.so 所用的并不一致。删除后 UT 转而编译 inc/toolchain 下的真实头文件,两侧统一。 已排查:stub 头中另有 CpuDetectServerInit、CpuDetectInfo、CPU_DETECT_MAGIC_NUM 等声明,其引用方均在 log_daemon/cpu_detect/ 且该模块有独立头文件,与本 stub 无关;该 stub 目录亦无其他 UT 引用。 ## 补充 awatchdog 打包选项 依 issue 评论(2026-08-17)补充。awatchdog_share 此前无任何安装规则——实测安装产物中的 libascend_watchdog.so(72112 字节)实为 awatchdog_stub_share,真正的 awatchdog_share(104376 字节)从未被交付: | 安装路径 | 补充前 | 补充后 | |---|---|---| | lib/libascend_watchdog.so | 无 | 104376(真实库) | | lib/stub/libascend_watchdog.so | 72112(桩) | 72112(桩) | 头文件路径按本仓实际位置适配:评论中的 ${ADIAG_DIR}/inc/awatchdog/ 在本仓 ADIAG_DIR 未定义且目录不存在,awatchdog 对外头文件实际位于 pkg_inc/watchdog/,故改用 ${RUNTIME_DIR}。 ## 修复 diff 自身引入的缺陷 - **trace_recorder.c 两处格式化字符串占位符多于参数**(第 376、404 行),运行时会读取栈上垃圾数据、参数错位甚至崩溃,补入缺失的 ret。该缺陷会导致 UT TestGetDirMkdirFailed 段错误(退出码 139),即线上 UT 崩溃的根因,已用「修复前复现 139 / 修复后通过」双向验证 - **trace_core.c 信号模块 Init/Exit 不对称**:device 分支 TraceInit 不再调用 TraceSignalInit,但 TraceExit 仍调用 TraceSignalExit;同时 diff 移除了 stacktrace_signal.c 中 #else 分支的空实现,使该调用由「调空壳」转为「调真实现」。按 device 侧不启用 signal 的设计意图,移除未配对的 TraceSignalExit。host(ATRACE_HOST) 分支配对关系不变 - **ktrace_ts.c 字段初始化不对称**:eventMsg 经 AdiagMalloc 分配后未初始化 eventType 与 sequence,与 socket 路径保持一致补齐 ## 修复 so 无法加载问题 atrace_stackcore_api.c 原在 libtraceSrcFiles 中,而其 AtraceStackcoreParse 仅转调 scd_process.c 的 ScdProcessParseCore。libutrace.so 与 device_default 路径的 libascend_trace.so 复用 libtraceSrcFiles 但不含 scd_process.c,留下无法解析的 ScdProcessParseCore——实测 RTLD_NOW/RTLD_LAZY 均报 undefined symbol,即**整个 so 无法 dlopen**,而非仅调用失败。 该缺陷 master 上已存在(master 的 host libutrace.so 同样导出该符号且同样无法 dlopen),但此前 utrace_share 的 install_package 为注释状态、不作为交付件,故未暴露;本 PR 打开安装后会使其成为已发布的破损交付件。 现将该文件移入 libatraceStackcoreSrcFiles,使其与 scd_* 实现同进同出。修复后 device 侧两个 so 由 dlopen 失败转为 RTLD_NOW 加载成功。 需知悉的行为变化:host libutrace.so 相比基线少导出 AtraceStackcoreParse,但基线该库本就无法加载,属由「有符号但整库不可用」变为「无符号但整库可用」。 ## UT 适配 - **trace_server_utest.cc**:生产代码已从 log_get_device_id 迁移到 halGetDevNumEx/halGetDevIDsEx,原打桩失效导致失败注入不生效(期望 -1 实得 0)。改为对两个 hal 接口分别打桩,并在两个场景间插入 GlobalMockObject::verify() 避免桩残留。已验证两条失败分支(trace_server_core.c:59、:65)均真实命中 - **cpu_detect_core_utest.cc**:UTEST_NORMAL 场景移除多余的 MOCKER(halBindCgroup)。aarch64 上该打桩会越界破坏入口仅相隔 28 字节的 halGetDeviceInfo(0x17d4c vs 0x17d68),使其返回全零,导致 CpuDetectGetCpuNum 读到 cpuNum=0 而用例失败。stub 中 halBindCgroup 本就返回 DRV_ERROR_NONE,无需打桩。该失败在未改动的 master 上以相同断言复现,非本 PR 引入,但会导致流水线 UT 阶段失败,故一并修复。同套件中 UTEST_BIND_CGROUP_FAIL 等场景因 mockcpp 在 aarch64 的同一限制已标注 GTEST_SKIP ## 验证结果 > 本地环境为 aarch64(gcc -dumpmachine = aarch64-linux-gnu,且无 x86 交叉编译器),因此**下述 host 结果均为 aarch64 host**;x86_64 host 构建无法在本地复现,ENABLE_OPEN_SRC 门控的有效性经代码审查与镜像测试确认(在 aarch64 上喂 x86 专属 -march 得到 cc1: error: unknown value,对称成立)。 编译: | 构建模式 | 结果 | |---|---| | ENABLE_OPEN_SRC=True(build.sh 路径) | atrace_share、utrace_share、awatchdog_share、awatchdog_stub_share 通过;cpu_detect 与 trace_server 按预期不参与编译 | | 不带该宏(内部构建) | 上述四者加 utrace_server_share、cpu_detect_share 共六个目标通过 | | device (ascend910B1) | 四个 trace 目标通过 | | pegasus (device_mdc) | 补齐外部 stub 后源文件 100% 编译通过(51/51、35/35、14/14、3/3),仅余 libiam 等 MDC 外部二进制缺失导致无法链接 | 原有交付件无回归(以 HEAD~1 worktree 建基线逐项比对):host libascend_trace.so 导出符号与基线**完全一致**(12 个),libutrace.so 源文件集完全一致;体积微变源于 diff 自身的源码删减而非 CMake 适配。 UT(ENABLE_OPEN_SRC=True + ENABLE_UT=on,与 CI 一致): | UT 目标 | 结果 | |---|---| | utrace_utest | 287 通过 | | trace_server_utest | 73 通过 | | cpu_detect_utest | 7 通过 / 6 跳过 | | awatchdog_utest | 14 通过 | | awatchdog_stub_utest | 2 通过 | ## 已知遗留(非本 PR 引入) - **RraceRbLogUtest.TestMsgNumEQBufferSize / TestMsgNumGTBufferSize 间歇失败**:8 写线程向容量 1024 的环形缓冲写满 1024 条,写满边界与读线程存在竞态。在未改动的 master 上连跑 3 次分别失败 1 个、0 个、2 个;trace_rb_log.c 与对应 UT 均与 master 逐字节相同。建议单独开 issue 处理生产代码的并发时序,不宜并入本 PR - **device_mdc 与 host_default 走同一 else() 分支**:三分支的 libtrace_type 实际只产生两种编译结果,device_mdc 该值被计算但未单独使用。按 issue「device 和 host 分别做不同的编译」的说法,pegasus 走 host 那套源文件集是否符合预期,请提交人确认 ## 检视意见处理情况 | 来源 | 条数 | 处理 | |---|---|---| | atomgit-bot | 3(2×High + 1×Medium) | 全部已修复,见「修复 diff 自身引入的缺陷」 | | @zhangpengpeng8 | 2(同一问题重述) | 已修复,见「ENABLE_OPEN_SRC 门控」 | | @newstarzj | 4 | 经核实均无需改动,理由见下 | @newstarzj 四条的核实结论: 1. **dataLength 下溢绕过校验** — 同一函数第 150 行已有 len < sizeof(UtraceMsg) 前置守卫(master 上即存在),走到减法时不可能下溢;且本 PR 该行实际是**收紧**了 master 的校验(上界由 len 改为 len - sizeof(UtraceMsg),正确排除头部长度) 2. **信号注册成 dead code** — 仅 device 分支移除,host 分支第 49、61 行仍完整配对(ATRACE_HOST 仅由 host 侧 atrace_share 定义),host 侧崩溃栈捕获能力完好 3. **device_default 未链 hal** — 事实准确,但实测该产物未解析 hal 符号数为 **0**。host 侧那 4 个 hal 符号(halHdcSend/Recv/SessionConnectEx/GetSessionAttr)来自 trace_client 的 HDC 通信代码,由两侧都链接的 adcore 提供,device_default 源集不含该路径 4. **版权年份 2026 疑似笔误** — 当前确为 2026 年,且上游 master 近期新增文件(如 aicpu_timeout_control.h)同样使用 2026 ## 关于 clang-format 格式化 commit 本 PR 含两个 commit: | commit | 内容 | |---|---| | feat: trace 代码同步... | 功能改动,即 #815 的需求实现 | | style: 按 clang-format 格式化... | 纯排版调整,无逻辑变更 | 拆分原因:upstream 提交 0f9386192 【PR】: feat:remove all exclude 移除了 .pre-commit-config.yaml 中 clang-format 的绝大部分排除规则——排除范围由 docs/example/include/pkg_inc/scripts/stub/tests 以及 src/(dfx/adump|dfx/log|dfx/trace/(atrace|common|cpu_detect|inc)) 收缩为仅剩 include/external/acl 下 5 个头文件。 该提交未同步格式化 trace 存量代码(其改动的 101 个文件中 trace 相关为 0),master 上 trace_attr.c、trace_msg.h 等至今仍不符合 clang-format。由于 pre-commit 仅检查 PR 改动的文件,未触碰 trace 时 master 可正常通过;而本 PR 改动了 24 个 trace 文件,rebase 到该提交之后这些文件全部进入检查范围,导致流水线 clang-format 检查失败。 格式化规模为 23 个文件、814 insertions / 903 deletions,**其中大部分是存量代码的重排**(这些文件历史上从未被 clang-format 处理),与 #815 的需求改动无关。故单独成一个 commit,评审时可用 git show --stat 区分,或只审第一个 commit 的功能改动。 无语义变更的验证依据:格式化前后各 so 的导出符号数完全一致(libascend_trace T=12/W=52、libutrace T=0/W=24、libcpu_detect T=13、libutrace_server T=21/W=53、libascend_watchdog T=2),五个编译目标与四个 UT 目标均通过。 若 reviewer 认为 trace 存量代码的格式化应由独立 PR 统一处理(例如与 remove all exclude 的作者协同分批推进),可将该 commit 摘出,但届时本 PR 的 clang-format 检查仍会失败,需要 CI 侧豁免或重新加回 trace 排除规则。 See merge request: cann/runtime!4176 | 1 个月前 | |
style: format awatchdog sources Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !4024 merge fix/awatchdog-clang-format into master style: format awatchdog sources Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: # Pull Request ## 描述 修复 src/dfx/trace/awatchdog 目录在临时放开 pre-commit 的 dfx/trace 排除后暴露的 clang-format 问题,并将 .pre-commit-config.yaml 中的 dfx/trace 整体屏蔽收窄为仅屏蔽 atrace、common、cpu_detect、inc 子目录,使 src/dfx/trace/awatchdog 后续进入 clang-format 检查,避免再次引入格式问题。 针对 UT_Test_atrace执行日志.txt 中增量覆盖率 58.3% 低于 80% 的失败,补充 awatchdog UT,覆盖 fork 子进程初始化、monitor reset 退出、destroyed node 清理和 timeout callback 等真实路径,使本 PR 修改的 awatchdog C 新增可执行行覆盖率提升到 95.8%。 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. 修改前运行 pre-commit run clang-format --files src/dfx/trace/awatchdog/...,结果为 Skipped,确认 awatchdog 原先被屏蔽。 2. 对 awatchdog 全部 C/H 文件执行 clang-format 修复。 3. 修改 .pre-commit-config.yaml,将 dfx/trace 排除项收窄为 dfx/trace/(?:atrace|common|cpu_detect|inc)。 4. 修改后运行 pre-commit run clang-format --files src/dfx/trace/awatchdog/...,结果 Passed。 5. 抽查 atrace、common、cpu_detect、inc 子目录文件,结果仍为 Skipped。 6. 运行 awatchdog 全文件 pre-commit run --files ...,结果 clang-format 与 OAT 均通过。 7. cmake --build build --target awatchdog_utest awatchdog_stub_utest -j8 通过。 8. ./build/tests/ut/atrace/ut/awatchdog/awatchdog_utest --gtest_output=xml:output/report/ut/awatchdog_utest.xml 通过,14 tests passed。 9. ./build/tests/ut/atrace/ut/awatchdog/awatchdog_stub_utest --gtest_output=xml:output/report/ut/awatchdog_stub_utest.xml 通过,2 tests passed。 10. 清零 awatchdog gcov 计数后重新运行两个 UT,lcov 显示 awatchdog.c 90.0%、awatchdog_core.c 85.0%、awatchdog_monitor.c 74.2%、awatchdog_stub.c 100%。 11. 按 git diff origin/master..HEAD -- src/dfx/trace/awatchdog 的新增 C 可执行行计算,覆盖 23/24 = 95.8%,超过 CI 阈值 80%。 12. git diff --check 通过。 13. pre-commit run --files tests/ut/atrace/ut/awatchdog/awatchdog_utest.cc tests/ut/atrace/ut/awatchdog/awatchdog_monitor_utest.cc 通过,OAT Passed。 14. 独立代码审查确认格式化提交无行为变化,配置正则仅放开 awatchdog,新增 UT 无阻塞问题。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 未运行全量构建或完整 atrace 覆盖率;本次针对 CI 日志中的 awatchdog 增量覆盖率失败补充了聚焦验证。 See merge request: cann/runtime!4024 | 2 个月前 | |
style: format awatchdog sources Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !4024 merge fix/awatchdog-clang-format into master style: format awatchdog sources Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: # Pull Request ## 描述 修复 src/dfx/trace/awatchdog 目录在临时放开 pre-commit 的 dfx/trace 排除后暴露的 clang-format 问题,并将 .pre-commit-config.yaml 中的 dfx/trace 整体屏蔽收窄为仅屏蔽 atrace、common、cpu_detect、inc 子目录,使 src/dfx/trace/awatchdog 后续进入 clang-format 检查,避免再次引入格式问题。 针对 UT_Test_atrace执行日志.txt 中增量覆盖率 58.3% 低于 80% 的失败,补充 awatchdog UT,覆盖 fork 子进程初始化、monitor reset 退出、destroyed node 清理和 timeout callback 等真实路径,使本 PR 修改的 awatchdog C 新增可执行行覆盖率提升到 95.8%。 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. 修改前运行 pre-commit run clang-format --files src/dfx/trace/awatchdog/...,结果为 Skipped,确认 awatchdog 原先被屏蔽。 2. 对 awatchdog 全部 C/H 文件执行 clang-format 修复。 3. 修改 .pre-commit-config.yaml,将 dfx/trace 排除项收窄为 dfx/trace/(?:atrace|common|cpu_detect|inc)。 4. 修改后运行 pre-commit run clang-format --files src/dfx/trace/awatchdog/...,结果 Passed。 5. 抽查 atrace、common、cpu_detect、inc 子目录文件,结果仍为 Skipped。 6. 运行 awatchdog 全文件 pre-commit run --files ...,结果 clang-format 与 OAT 均通过。 7. cmake --build build --target awatchdog_utest awatchdog_stub_utest -j8 通过。 8. ./build/tests/ut/atrace/ut/awatchdog/awatchdog_utest --gtest_output=xml:output/report/ut/awatchdog_utest.xml 通过,14 tests passed。 9. ./build/tests/ut/atrace/ut/awatchdog/awatchdog_stub_utest --gtest_output=xml:output/report/ut/awatchdog_stub_utest.xml 通过,2 tests passed。 10. 清零 awatchdog gcov 计数后重新运行两个 UT,lcov 显示 awatchdog.c 90.0%、awatchdog_core.c 85.0%、awatchdog_monitor.c 74.2%、awatchdog_stub.c 100%。 11. 按 git diff origin/master..HEAD -- src/dfx/trace/awatchdog 的新增 C 可执行行计算,覆盖 23/24 = 95.8%,超过 CI 阈值 80%。 12. git diff --check 通过。 13. pre-commit run --files tests/ut/atrace/ut/awatchdog/awatchdog_utest.cc tests/ut/atrace/ut/awatchdog/awatchdog_monitor_utest.cc 通过,OAT Passed。 14. 独立代码审查确认格式化提交无行为变化,配置正则仅放开 awatchdog,新增 UT 无阻塞问题。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 未运行全量构建或完整 atrace 覆盖率;本次针对 CI 日志中的 awatchdog 增量覆盖率失败补充了聚焦验证。 See merge request: cann/runtime!4024 | 2 个月前 | |
style: format awatchdog sources Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !4024 merge fix/awatchdog-clang-format into master style: format awatchdog sources Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: # Pull Request ## 描述 修复 src/dfx/trace/awatchdog 目录在临时放开 pre-commit 的 dfx/trace 排除后暴露的 clang-format 问题,并将 .pre-commit-config.yaml 中的 dfx/trace 整体屏蔽收窄为仅屏蔽 atrace、common、cpu_detect、inc 子目录,使 src/dfx/trace/awatchdog 后续进入 clang-format 检查,避免再次引入格式问题。 针对 UT_Test_atrace执行日志.txt 中增量覆盖率 58.3% 低于 80% 的失败,补充 awatchdog UT,覆盖 fork 子进程初始化、monitor reset 退出、destroyed node 清理和 timeout callback 等真实路径,使本 PR 修改的 awatchdog C 新增可执行行覆盖率提升到 95.8%。 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. 修改前运行 pre-commit run clang-format --files src/dfx/trace/awatchdog/...,结果为 Skipped,确认 awatchdog 原先被屏蔽。 2. 对 awatchdog 全部 C/H 文件执行 clang-format 修复。 3. 修改 .pre-commit-config.yaml,将 dfx/trace 排除项收窄为 dfx/trace/(?:atrace|common|cpu_detect|inc)。 4. 修改后运行 pre-commit run clang-format --files src/dfx/trace/awatchdog/...,结果 Passed。 5. 抽查 atrace、common、cpu_detect、inc 子目录文件,结果仍为 Skipped。 6. 运行 awatchdog 全文件 pre-commit run --files ...,结果 clang-format 与 OAT 均通过。 7. cmake --build build --target awatchdog_utest awatchdog_stub_utest -j8 通过。 8. ./build/tests/ut/atrace/ut/awatchdog/awatchdog_utest --gtest_output=xml:output/report/ut/awatchdog_utest.xml 通过,14 tests passed。 9. ./build/tests/ut/atrace/ut/awatchdog/awatchdog_stub_utest --gtest_output=xml:output/report/ut/awatchdog_stub_utest.xml 通过,2 tests passed。 10. 清零 awatchdog gcov 计数后重新运行两个 UT,lcov 显示 awatchdog.c 90.0%、awatchdog_core.c 85.0%、awatchdog_monitor.c 74.2%、awatchdog_stub.c 100%。 11. 按 git diff origin/master..HEAD -- src/dfx/trace/awatchdog 的新增 C 可执行行计算,覆盖 23/24 = 95.8%,超过 CI 阈值 80%。 12. git diff --check 通过。 13. pre-commit run --files tests/ut/atrace/ut/awatchdog/awatchdog_utest.cc tests/ut/atrace/ut/awatchdog/awatchdog_monitor_utest.cc 通过,OAT Passed。 14. 独立代码审查确认格式化提交无行为变化,配置正则仅放开 awatchdog,新增 UT 无阻塞问题。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 未运行全量构建或完整 atrace 覆盖率;本次针对 CI 日志中的 awatchdog 增量覆盖率失败补充了聚焦验证。 See merge request: cann/runtime!4024 | 2 个月前 | |
style: format awatchdog sources Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !4024 merge fix/awatchdog-clang-format into master style: format awatchdog sources Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: # Pull Request ## 描述 修复 src/dfx/trace/awatchdog 目录在临时放开 pre-commit 的 dfx/trace 排除后暴露的 clang-format 问题,并将 .pre-commit-config.yaml 中的 dfx/trace 整体屏蔽收窄为仅屏蔽 atrace、common、cpu_detect、inc 子目录,使 src/dfx/trace/awatchdog 后续进入 clang-format 检查,避免再次引入格式问题。 针对 UT_Test_atrace执行日志.txt 中增量覆盖率 58.3% 低于 80% 的失败,补充 awatchdog UT,覆盖 fork 子进程初始化、monitor reset 退出、destroyed node 清理和 timeout callback 等真实路径,使本 PR 修改的 awatchdog C 新增可执行行覆盖率提升到 95.8%。 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. 修改前运行 pre-commit run clang-format --files src/dfx/trace/awatchdog/...,结果为 Skipped,确认 awatchdog 原先被屏蔽。 2. 对 awatchdog 全部 C/H 文件执行 clang-format 修复。 3. 修改 .pre-commit-config.yaml,将 dfx/trace 排除项收窄为 dfx/trace/(?:atrace|common|cpu_detect|inc)。 4. 修改后运行 pre-commit run clang-format --files src/dfx/trace/awatchdog/...,结果 Passed。 5. 抽查 atrace、common、cpu_detect、inc 子目录文件,结果仍为 Skipped。 6. 运行 awatchdog 全文件 pre-commit run --files ...,结果 clang-format 与 OAT 均通过。 7. cmake --build build --target awatchdog_utest awatchdog_stub_utest -j8 通过。 8. ./build/tests/ut/atrace/ut/awatchdog/awatchdog_utest --gtest_output=xml:output/report/ut/awatchdog_utest.xml 通过,14 tests passed。 9. ./build/tests/ut/atrace/ut/awatchdog/awatchdog_stub_utest --gtest_output=xml:output/report/ut/awatchdog_stub_utest.xml 通过,2 tests passed。 10. 清零 awatchdog gcov 计数后重新运行两个 UT,lcov 显示 awatchdog.c 90.0%、awatchdog_core.c 85.0%、awatchdog_monitor.c 74.2%、awatchdog_stub.c 100%。 11. 按 git diff origin/master..HEAD -- src/dfx/trace/awatchdog 的新增 C 可执行行计算,覆盖 23/24 = 95.8%,超过 CI 阈值 80%。 12. git diff --check 通过。 13. pre-commit run --files tests/ut/atrace/ut/awatchdog/awatchdog_utest.cc tests/ut/atrace/ut/awatchdog/awatchdog_monitor_utest.cc 通过,OAT Passed。 14. 独立代码审查确认格式化提交无行为变化,配置正则仅放开 awatchdog,新增 UT 无阻塞问题。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 未运行全量构建或完整 atrace 覆盖率;本次针对 CI 日志中的 awatchdog 增量覆盖率失败补充了聚焦验证。 See merge request: cann/runtime!4024 | 2 个月前 | |
feat: 优化动态库构造函数以规避glibc低版本bug (#697) Co-authored-by: GuoWenbo<guowenbo13@h-partners.com> # message auto-generated for no-merge-commit merge: !3482 merge feature-issue-697 into master feat: 优化动态库构造函数以规避glibc低版本bug (#697) Created-by: GuoWenbo Commit-by: GuoWenbo Merged-by: cann-robot Description: ## 描述 - 实现摘要: 背景:glibc<=2.33时,so构造函数中创建线程会触发glibc的TLS初始化竞争条件。为了避免该问题,需要做优化 - 变更文件: - src/dfx/log/liblog/slog/plog/plog_host_log.c - src/dfx/trace/awatchdog/awatchdog_core.c - src/dfx/trace/awatchdog/awatchdog_monitor.c - src/dfx/trace/awatchdog/awatchdog_monitor.h - tests/ut/atrace/ut/awatchdog/awatchdog_monitor_utest.cc - tests/ut/atrace/ut/awatchdog/awatchdog_utest.cc - tests/ut/slog/ut/ep/alog_host/testcase/plog_host_log_utest.cc ### Diff 摘要 text src/dfx/log/liblog/slog/plog/plog_host_log.c | 3 +- src/dfx/trace/awatchdog/awatchdog_core.c | 10 +- src/dfx/trace/awatchdog/awatchdog_monitor.c | 7 +- src/dfx/trace/awatchdog/awatchdog_monitor.h | 6 +- .../atrace/ut/awatchdog/awatchdog_monitor_utest.cc | 4 +- tests/ut/atrace/ut/awatchdog/awatchdog_utest.cc | 132 ++++++++++++++------- .../ep/alog_host/testcase/plog_host_log_utest.cc | 91 ++++++++++++-- 7 files changed, 186 insertions(+), 67 deletions(-) ## 变更类型 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## 关联的Issue https://gitcode.com/cann/runtime/issues/697 ## 如何测试 - 测试结论: PASS - 检测到代码变更文件 7 个: src/dfx/log/liblog/slog/plog/plog_host_log.c, src/dfx/trace/awatchdog/awatchdog_core.c, src/dfx/trace/awatchdog/awatchdog_monitor.c, src/dfx/trace/awatchdog/awatchdog_monitor.h, tests/ut/atrace/ut/awatchdog/awatchdog_monitor_utest.cc, tests/ut/atrace/ut/awatchdog/awatchdog_utest.cc, tests/ut/slog/ut/ep/alog_host/testcase/plog_host_log_utest.cc - 测试日志包含通过信号 - 测试日志覆盖计划测试项 11 条 ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 ## 风险和遗留问题 - (none) See merge request: cann/runtime!3482 | 2 个月前 | |
style: format awatchdog sources Co-authored-by: fujun19<fujun19@hisilicon.com> # message auto-generated for no-merge-commit merge: !4024 merge fix/awatchdog-clang-format into master style: format awatchdog sources Created-by: fujun19 Commit-by: fujun19 Merged-by: cann-robot Description: # Pull Request ## 描述 修复 src/dfx/trace/awatchdog 目录在临时放开 pre-commit 的 dfx/trace 排除后暴露的 clang-format 问题,并将 .pre-commit-config.yaml 中的 dfx/trace 整体屏蔽收窄为仅屏蔽 atrace、common、cpu_detect、inc 子目录,使 src/dfx/trace/awatchdog 后续进入 clang-format 检查,避免再次引入格式问题。 针对 UT_Test_atrace执行日志.txt 中增量覆盖率 58.3% 低于 80% 的失败,补充 awatchdog UT,覆盖 fork 子进程初始化、monitor reset 退出、destroyed node 清理和 timeout callback 等真实路径,使本 PR 修改的 awatchdog C 新增可执行行覆盖率提升到 95.8%。 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. 修改前运行 pre-commit run clang-format --files src/dfx/trace/awatchdog/...,结果为 Skipped,确认 awatchdog 原先被屏蔽。 2. 对 awatchdog 全部 C/H 文件执行 clang-format 修复。 3. 修改 .pre-commit-config.yaml,将 dfx/trace 排除项收窄为 dfx/trace/(?:atrace|common|cpu_detect|inc)。 4. 修改后运行 pre-commit run clang-format --files src/dfx/trace/awatchdog/...,结果 Passed。 5. 抽查 atrace、common、cpu_detect、inc 子目录文件,结果仍为 Skipped。 6. 运行 awatchdog 全文件 pre-commit run --files ...,结果 clang-format 与 OAT 均通过。 7. cmake --build build --target awatchdog_utest awatchdog_stub_utest -j8 通过。 8. ./build/tests/ut/atrace/ut/awatchdog/awatchdog_utest --gtest_output=xml:output/report/ut/awatchdog_utest.xml 通过,14 tests passed。 9. ./build/tests/ut/atrace/ut/awatchdog/awatchdog_stub_utest --gtest_output=xml:output/report/ut/awatchdog_stub_utest.xml 通过,2 tests passed。 10. 清零 awatchdog gcov 计数后重新运行两个 UT,lcov 显示 awatchdog.c 90.0%、awatchdog_core.c 85.0%、awatchdog_monitor.c 74.2%、awatchdog_stub.c 100%。 11. 按 git diff origin/master..HEAD -- src/dfx/trace/awatchdog 的新增 C 可执行行计算,覆盖 23/24 = 95.8%,超过 CI 阈值 80%。 12. git diff --check 通过。 13. pre-commit run --files tests/ut/atrace/ut/awatchdog/awatchdog_utest.cc tests/ut/atrace/ut/awatchdog/awatchdog_monitor_utest.cc 通过,OAT Passed。 14. 独立代码审查确认格式化提交无行为变化,配置正则仅放开 awatchdog,新增 UT 无阻塞问题。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 未运行全量构建或完整 atrace 覆盖率;本次针对 CI 日志中的 awatchdog 增量覆盖率失败补充了聚焦验证。 See merge request: cann/runtime!4024 | 2 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 |