已合并
fix env #401
Innoecho创建于 7月7日
fix env #401
已合并
Innoecho创建于 7月7日
Innoecho成员
7月7日

描述

修复HCCL TEST屏蔽HCCL_OP_EXPANSION_MODE环境变量问题

关联的Issue

NA

测试

自验证

文档更新

NA

类型标签

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 Innoecho 的贡献)
atomgit-bot
atomgit-bot
7月7日 评论:

变更摘要

此 PR 修复了 HcclTest::parse_cmd_line 中在 910_95 场景下无条件覆盖 accelerator_config 的问题。原逻辑在 is910_95 为真时直接将加速器模式设为 CCU_SCHED(值为 6),忽略了已通过环境变量 HCCL_OP_EXPANSION_MODE 配置的情况。修改后增加对该环境变量的判空检查,仅当 HCCL_OP_EXPANSION_MODE 未设置时才应用默认加速器模式,避免覆盖用户已有的环境变量配置。

主要改动

  • 增加 HCCL_OP_EXPANSION_MODE 环境变量检查:在 src/hccl_test/common/src/hccl_test_common.ccparse_cmd_line 函数中,通过 getenv("HCCL_OP_EXPANSION_MODE") 获取环境变量值,并将判断条件从 if (is910_95) 改为 if (is910_95 && opModeEnv == nullptr),确保仅在环境变量未配置时才将 accelerator_config 默认设为 6
  • 保留已有环境变量配置:当 HCCL_OP_EXPANSION_MODE 已设置时,不再强制修改 accelerator_config,使环境变量配置能够正常生效
likedislike
atomgit-bot
atomgit-bot
7月7日 评论:

代码审查

经过全面审查,该变更 没有引入任何问题

审查分析

我对 src/hccl_test/common/src/hccl_test_common.cc 中的变更进行了以下逐项检查:

变更内容

HcclTest::parse_cmd_line 中,将原来无条件设置 accelerator_config = 6(针对 910_95 平台)的逻辑,改为仅在环境变量 HCCL_OP_EXPANSION_MODE 未设置时才执行:

const char *opModeEnv = getenv("HCCL_OP_EXPANSION_MODE");
if (is910_95 && opModeEnv == nullptr) {
    accelerator_config = 6;
}

审查结论(无问题)

检查项 结果
逻辑正确性 ✅ 当 HCCL_OP_EXPANSION_MODE 已设置时,不再覆盖 accelerator_config,HCCL 库将自行读取该环境变量;命令行 -a 参数仍然可以显式覆盖。accelerator_config 默认值为 0("default"),是合法值。
安全性 getenv()<stdlib.h> 声明,返回值仅用于立即的 nullptr 比较,无悬垂指针风险。
可靠性 accelerator_config = 6 是合法值(对应 "ccu_sched"),后续 check_cmd_line 只拒绝 -1,不会误判。
非 910_95 平台 is910_95 为 false 时,条件不触发,行为与变更前一致。
线程安全 parse_cmd_linemain 的初始化阶段调用,不存在并发 setenv/getenv 竞争。
构建/头文件 getenv() 声明已通过已有的 #include <stdlib.h> 覆盖。

总结

  • 已审查文件src/hccl_test/common/src/hccl_test_common.cc无问题
  • 各优先级问题数量:P0: 0, P1: 0, P2: 0, P3: 0。
  • 整体风险判断:此变更安全,可以合入。

⚠️ 已识别出整体风险,但无法提取行内评论,请参考整体评估。

likedislike
CANN-robotCANN-robot成员
7月7日 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
7月7日 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here
You can get sig-info at here


PR Approval Progress

Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
src/hccl_test lilin_137, ouyangxizi (2/2) ouyangxizi (1/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

Innoecho, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
CANN-robotCANN-robot成员
7月7日 将newstarzj,chenhao_1209,wulinyu,zhuliangying,yaoguangxiu,fujun19,jinyingqi设为评审人
Innoecho成员
7月7日 评论:

/compile

likedislike
CANN-robotCANN-robot成员
7月7日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
7月7日 评论:

流水线任务触发成功
任务链接 [7b4982c0c7de43448b7b8c7e7c2037db][流水线指导]

任务名称状态日志下载链接
codecheck ✅ SUCCESS >>>>>
SCA ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
Check_Pr ✅ SUCCESS >>>>>
Compile_Ascend_X86 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_X86_ubuntu24 ✅ SUCCESS >>>>> >>>>>
pre_comment ✅ SUCCESS >>>>>
cocheck_codestyle ✅ SUCCESS
precommit ⚠️ WARNING >>>>> >>>>>
StaticCheck_codespell_check ✅ SUCCESS
StaticCheck_link_validity_check ✅ SUCCESS
StaticCheck_resource_existence_check ✅ SUCCESS
StaticCheck_tag_closed_check ✅ SUCCESS
StaticCheck_markdownlint ✅ SUCCESS
UT_Test_asys ✅ SUCCESS >>>>>
UT_Test_msaicerr ✅ SUCCESS >>>>>
UT_Test_msprof ✅ SUCCESS >>>>>
API_Check ✅ SUCCESS >>>>>
PreSmoke_A900 ✅ SUCCESS >>>>>

[2026-07-07 22:28:18]    CI执行结束

likedislike
CANN-robotCANN-robot成员
7月7日 添加了label:api-check-pass
CANN-robotCANN-robot成员
7月7日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
7月7日 添加了label:ci-pipeline-passed
lilin_137成员
7月8日 评论:

/lgtm

likedislike
lilin_137成员7月8日进行代码检视2
src/hccl_test/common/src/hccl_test_common.cc
已过期
@@ -658,7 +658,9 @@ int HcclTest::parse_cmd_line(int argc, char *argv[])
658658 bool is910_95 = IsSupport910_95();
659659 std::string shortopts = is910_95 ? "o:d:b:e:i:f:r:n:w:c:p:a:t:m:h" : "o:d:b:e:i:f:r:n:w:c:p:z:s:t:m:h";
660660 std::vector<struct option> longopts = build_longopts(is910_95);
661- if (is910_95) {
661+ 
662+ const char *opModeEnv = getenv("HCCL_OP_EXPANSION_MODE");
663+ if (is910_95 && opModeEnv == nullptr) { // 需要确保环境变量未配置
662664 accelerator_config = 6; // 910_95场景,修改默认加速器模式为CCU_SCHED
663665 }
664666 while (-1 != (opt = getopt_long(argc, argv, shortopts.c_str(), longopts.data(), &longindex))) {
@@ -1259,7 +1261,7 @@
12591261// -t参数对于ccu alltoallvc 算子数据量大于等于 128MB的场景 -t不生效
12601262aclError HcclTest::start_profile_device_time_if_needed(size_t data_size)
12611263{
12621264 bool isCcuSched = (accelerator_config == 0 || accelerator_config == 6) && IsSupport910_95();
lilin_1377月8日评论:

请确认accelerator_config == 0是否需要修改

likedislike
System
系统消息系统
7月8日 评论:

changed this line on 5b9bc408 view diff detail

IInnoecho成员
7月8日 强制推送  1 个提交:5b9bc408-fix env
CANN-robotCANN-robot成员
7月8日 删除了label:ci-pipeline-passed
CANN-robot
CANN-robot成员
7月8日 评论:

Notification

This pull request has been changed(code update) or closed, so removes the following label(s): ci-pipeline-passed.

likedislike
Llilin_137成员
7月8日 解决了最后一个问题
lilin_137成员
7月8日 评论:

/lgtm

likedislike
xi
xi成员7月8日进行代码检视1
src/hccl_test/common/src/hccl_test_common.cc
@@ -661,1 +661,3 @@
661- if (is910_95) {
661+ 
662+ const char *opModeEnv = getenv("HCCL_OP_EXPANSION_MODE");
663+ if (is910_95 && opModeEnv == nullptr) { // 需要确保环境变量未配置
xi
xi7月8日评论:

上面readme里默认模式是AICPUTS,但是在没有配置HCCL_OP_EXPANSION_MODE的情况下,判断是910_95的情况下走664行跟readme没有保持一致,注释建议删除

likedislike
IInnoecho成员
7月8日 强制推送  1 个提交:54cc899a-fix env
Innoecho成员
7月8日 评论:

/compile

likedislike
CANN-robotCANN-robot成员
7月8日 删除了label:api-check-pass
CANN-robotCANN-robot成员
7月8日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
7月8日 评论:

流水线任务触发成功
任务链接 [b3d4b8442c9947cabd5938c662eb0248][流水线指导]

任务名称状态日志下载链接
codecheck ✅ SUCCESS >>>>>
SCA ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
Check_Pr ❌ FAILED >>>>>
Compile_Ascend_X86 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_X86_ubuntu24 ✅ SUCCESS >>>>> >>>>>
pre_comment ✅ SUCCESS >>>>>
cocheck_codestyle ✅ SUCCESS
precommit ⚠️ WARNING >>>>> >>>>>
StaticCheck_codespell_check ⚠️ WARNING >>>>>
StaticCheck_link_validity_check ✅ SUCCESS
StaticCheck_resource_existence_check ✅ SUCCESS
StaticCheck_tag_closed_check ✅ SUCCESS
StaticCheck_markdownlint ✅ SUCCESS
likedislike
CANN-robotCANN-robot成员
7月8日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
7月8日 添加了label:ci-pipeline-failed
CANN-robot
CANN-robot成员
7月8日 评论:
流水线 PR-pipeline_cann_oam-tools#1301 [ commitID:54cc899a ] 运行失败
likedislike
IInnoecho成员
7月8日 强制推送  1 个提交:4d5cbf94-fix env
Innoecho成员
7月8日 评论:

/compile

likedislike
CANN-robotCANN-robot成员
7月8日 删除了label:ci-pipeline-failed
CANN-robotCANN-robot成员
7月8日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
7月8日 评论:

流水线任务触发成功
任务链接 [d650a0ad2f404bdd9ca5e668e96de48b][流水线指导]

任务名称状态日志下载链接
codecheck ✅ SUCCESS >>>>>
SCA ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
Check_Pr ✅ SUCCESS >>>>>
Compile_Ascend_X86 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_X86_ubuntu24 ✅ SUCCESS >>>>> >>>>>
pre_comment ✅ SUCCESS >>>>>
cocheck_codestyle ✅ SUCCESS
precommit ⚠️ WARNING >>>>> >>>>>
StaticCheck_codespell_check ✅ SUCCESS
StaticCheck_link_validity_check ✅ SUCCESS
StaticCheck_resource_existence_check ✅ SUCCESS
StaticCheck_tag_closed_check ✅ SUCCESS
StaticCheck_markdownlint ✅ SUCCESS
UT_Test_asys ✅ SUCCESS >>>>>
UT_Test_msaicerr ✅ SUCCESS >>>>>
UT_Test_msprof ✅ SUCCESS >>>>>
API_Check ✅ SUCCESS >>>>>
PreSmoke_A900 ✅ SUCCESS >>>>>

[2026-07-08 15:19:30]    CI执行结束

likedislike
CANN-robotCANN-robot成员
7月8日 添加了label:api-check-pass
CANN-robotCANN-robot成员
7月8日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
7月8日 添加了label:ci-pipeline-passed
lilin_137成员
7月8日 评论:

/lgtm

likedislike
xixi成员
7月8日 解决了最后一个问题
xi
xi成员
7月8日 评论:

/approve

likedislike
CANN-robotCANN-robot成员
7月8日 添加了label:lgtmapproved
CANN-robotCANN-robot成员
7月8日 合入了pull request