已合并
[Profiling]删除非正式开关、选项 #3323
[Profiling]删除非正式开关、选项 #3323
已合并
zhengkai创建于 7月2日
40 个文件变更+66-378
@@ -93,7 +93,6 @@ typedef enum {
93 ACL_PROF_HOST_SYS_USAGE = 9,93 ACL_PROF_HOST_SYS_USAGE = 9,
zhangjie
zhangjiezhangjie7月6日

ACL_PROF_SYS_MEM_SERVICEFLOW=12 被从枚举中删除,但枚举值从 13 继续,导致值 12 产生空洞。如果有外部代码或序列化数据仍使用值 12,将导致错误解释。建议保留占位枚举值(如 ACL_PROF_DEPRECATED_12 = 12)以保持 ABI 兼容性。

likedislike
94 ACL_PROF_HOST_SYS_USAGE_FREQ = 10,94 ACL_PROF_HOST_SYS_USAGE_FREQ = 10,
95 ACL_PROF_LOW_POWER_FREQ = 11,95 ACL_PROF_LOW_POWER_FREQ = 11,
96- ACL_PROF_SYS_MEM_SERVICEFLOW = 12,
97 ACL_PROF_SYS_CPU_FREQ = 13,96 ACL_PROF_SYS_CPU_FREQ = 13,
98 ACL_PROF_OPTYPE = 14,97 ACL_PROF_OPTYPE = 14,
99 ACL_PROF_NTS_METRICS = 15,98 ACL_PROF_NTS_METRICS = 15,
@@ -200,7 +200,6 @@ const char * const MSVP_PROF_EMPTY_STRING = "";
200const char * const MSVP_PROF_ACLAPI_MODE = "aclapi";200const char * const MSVP_PROF_ACLAPI_MODE = "aclapi";
201const char * const MSVP_PROF_SUBSCRIBE_MODE = "subscribe";201const char * const MSVP_PROF_SUBSCRIBE_MODE = "subscribe";
202const char * const MSVP_PROF_SYSTEM_MODE = "system";202const char * const MSVP_PROF_SYSTEM_MODE = "system";
203-const char * const MSVP_PROF_ALL = "all";
204const char * const HELPER_HOST_CPU_MODE = "64";203const char * const HELPER_HOST_CPU_MODE = "64";
205 204 
206// dynamic profiling205// dynamic profiling
@@ -467,9 +467,6 @@ bool ParamValidation::CheckProfilingSwitchIsValid(SHARED_PTR_ALIA<analysis::dvvp
467 if (params == nullptr) {467 if (params == nullptr) {
468 return false;468 return false;
469 }469 }
470- if (!CheckControlSwitchProfiling(params)) {
471- return false;
472- }
473 if (!CheckTsSwitchProfiling(params)) {470 if (!CheckTsSwitchProfiling(params)) {
474 return false;471 return false;
475 }472 }
@@ -503,11 +500,11 @@ bool ParamValidation::CheckParamL0L1Invalid(const std::string &switchName, const
503 std::vector<std::string>({switchName}));500 std::vector<std::string>({switchName}));
504 return false;501 return false;
505 }502 }
503+ std::string errInfo = "Please input 'l0', 'l1' or 'off'.";
506 if (switchStr.compare(MSVP_PROF_L3) == 0 && !Platform::instance()->CheckIfSupport(PLATFORM_TASK_TRACE_L3)) {504 if (switchStr.compare(MSVP_PROF_L3) == 0 && !Platform::instance()->CheckIfSupport(PLATFORM_TASK_TRACE_L3)) {
507 MSPROF_LOGE("l3 is not supported on this platform.");505 MSPROF_LOGE("l3 is not supported on this platform.");
508 return false;506 return false;
509 }507 }
510- std::string errInfo = "Please input 'l0', 'l1' or 'off'.";
511 if (switchName.compare("ge_api") == 0) {508 if (switchName.compare("ge_api") == 0) {
512 if (switchStr.compare(MSVP_PROF_L0) == 0 || switchStr.compare(MSVP_PROF_L1) == 0 ||509 if (switchStr.compare(MSVP_PROF_L0) == 0 || switchStr.compare(MSVP_PROF_L1) == 0 ||
513 switchStr.compare(MSVP_PROF_OFF) == 0) {510 switchStr.compare(MSVP_PROF_OFF) == 0) {
@@ -519,10 +516,10 @@ bool ParamValidation::CheckParamL0L1Invalid(const std::string &switchName, const
519 IsValidSwitch(switchStr)) {516 IsValidSwitch(switchStr)) {
520 return true;517 return true;
521 } else {518 } else {
522- std::string task_trace_ranges = Platform::instance()->CheckIfSupport(PLATFORM_TASK_TRACE_L3)519+ std::string taskTraceRanges = Platform::instance()->CheckIfSupport(PLATFORM_TASK_TRACE_L3)
523- ? "'on', 'off', 'l0', 'l1', 'l2' or 'l3'." 520+ ? "'on', 'off', 'l0', 'l1', 'l2' or 'l3'."
524 : "'on', 'off', 'l0', 'l1' or 'l2'.";521 : "'on', 'off', 'l0', 'l1' or 'l2'.";
525- errInfo = "Please input " + task_trace_ranges;522+ errInfo = "Please input " + taskTraceRanges;
526 }523 }
527 }524 }
528 MSPROF_LOGE("Argument %s: invalid value: %s. %s", switchName.c_str(), switchStr.c_str(), errInfo.c_str());525 MSPROF_LOGE("Argument %s: invalid value: %s. %s", switchName.c_str(), switchStr.c_str(), errInfo.c_str());
@@ -550,14 +547,6 @@ bool ParamValidation::CheckParamEmptyInvalid(const std::string &switchName, cons
550 return false;547 return false;
zhangjie
zhangjiezhangjie7月6日

CheckTaskBlockValid 移除了对 "all" 选项的支持和平台特定检查。现有用户如果传入 "all" 将收到错误,这是不兼容的接口变更。建议在文档或 release notes 中明确标注此破坏性变更,或提供过渡期的兼容处理(如将 "all" 映射为 "on" 并输出警告)。

likedislike
551}548}
552 549 
553-bool ParamValidation::CheckControlSwitchProfiling(SHARED_PTR_ALIA<analysis::dvvp::message::ProfileParams> params)
554-{
555- if (!IsValidSwitch(params->taskTsfw)) {
556- MSPROF_LOGE("Control switch taskTsfw is not valid.");
557- }
558- return true;
559-}
560- 
561bool ParamValidation::CheckTsSwitchProfiling(SHARED_PTR_ALIA<analysis::dvvp::message::ProfileParams> params)550bool ParamValidation::CheckTsSwitchProfiling(SHARED_PTR_ALIA<analysis::dvvp::message::ProfileParams> params)
562{551{
563 if (!IsValidSwitch(params->ts_task_track)) {552 if (!IsValidSwitch(params->ts_task_track)) {
@@ -1125,22 +1114,6 @@ bool ParamValidation::CheckFreqIsValid(const std::string &switchName, uint32_t f
1125 }1114 }
1126 return false;1115 return false;
1127}1116}
1128- 
1129-/**
1130- * @brief : Check mem serviceflow is valid
1131- * @param : [in] switchName : the switch name
1132- * @param : [in] config : sys mem serviceflow config
1133- * @return : true
1134- * false
1135- */
1136-bool ParamValidation::CheckMemServiceflowValid(const std::string &switchName, const std::string &config) const
1137-{
1138- FUNRET_CHECK_EXPR_ACTION(!Platform::instance()->CheckIfSupport(PLATFORM_SYS_MEM_SERVICEFLOW), return false,
1139- "Argument %s is not supported", switchName.c_str());
1140- FUNRET_CHECK_EXPR_ACTION(config.empty(), return false, "Argument %s is empty.", switchName.c_str());
1141- return true;
1142-}
1143- 
1144bool ParamValidation::CheckAiCoreEventsIsValid(const std::vector<std::string> &events) const1117bool ParamValidation::CheckAiCoreEventsIsValid(const std::vector<std::string> &events) const
1145{1118{
1146 if (events.size() > Platform::instance()->GetMaxMonitorNumber()) {1119 if (events.size() > Platform::instance()->GetMaxMonitorNumber()) {
@@ -1197,29 +1170,11 @@ bool ParamValidation::CheckTaskBlockValid(const std::string &switchName, const s
1197 FUNRET_CHECK_EXPR_ACTION(!Platform::instance()->CheckIfSupport(PLATFORM_TASK_BLOCK), return false,1170 FUNRET_CHECK_EXPR_ACTION(!Platform::instance()->CheckIfSupport(PLATFORM_TASK_BLOCK), return false,
1198 "Argument %s is not supported", switchName.c_str());1171 "Argument %s is not supported", switchName.c_str());
1199 FUNRET_CHECK_EXPR_ACTION(config.empty(), return false, "Argument %s is empty.", switchName.c_str());1172 FUNRET_CHECK_EXPR_ACTION(config.empty(), return false, "Argument %s is empty.", switchName.c_str());
1200- if (config.compare(MSVP_PROF_OFF) != 0 && config.compare(MSVP_PROF_ALL) != 0 && 1173+ if (config.compare(MSVP_PROF_OFF) != 0 && config.compare(MSVP_PROF_ON) != 0) {
1201- config.compare(MSVP_PROF_ON) != 0) {1174+ MSPROF_LOGE("Argument %s: invalid value: %s. Please input 'on' or 'off'.",
1202- std::string taskBlockRanges;1175+ switchName.c_str(), config.c_str());
1203- if (Platform::instance()->GetPlatformType() == CHIP_CLOUD_V3 ||
1204- Platform::instance()->GetPlatformType() == CHIP_CLOUD_V4 ||
1205- Platform::instance()->GetPlatformType() == CHIP_MDC_V2 ||
1206- Platform::instance()->GetPlatformType() == CHIP_MDC_LITE_V2) {
1207- taskBlockRanges = "'all', 'on', 'off'.";
1208- } else {
1209- taskBlockRanges = "'all', 'off'.";
1210- }
1211- MSPROF_LOGE("Argument %s: invalid value: %s. Please input %s",
1212- switchName.c_str(), config.c_str(), taskBlockRanges.c_str());
1213 return false;1176 return false;
1214- }1177+ }
1215- if (config.compare(MSVP_PROF_ON) == 0 &&
1216- Platform::instance()->GetPlatformType() != CHIP_CLOUD_V3 &&
1217- Platform::instance()->GetPlatformType() != CHIP_CLOUD_V4 &&
1218- Platform::instance()->GetPlatformType() != CHIP_MDC_V2 &&
1219- Platform::instance()->GetPlatformType() != CHIP_MDC_LITE_V2) {
1220- MSPROF_LOGE("The on option is not supported on this platform, please use all to collect block data.");
1221- return false;
1222- }
1223 return true;1178 return true;
1224}1179}
1225#endif // BUILD_OPEN_PROJECT1180#endif // BUILD_OPEN_PROJECT
@@ -79,7 +79,6 @@ public:
79 bool CheckArgRange(const std::string &switchName, const std::string &value, uint32_t min, uint32_t max) const;79 bool CheckArgRange(const std::string &switchName, const std::string &value, uint32_t min, uint32_t max) const;
80 bool CheckLlcConfigValid(const std::string &config) const;80 bool CheckLlcConfigValid(const std::string &config) const;
81 bool CheckFreqIsValid(const std::string &switchName, uint32_t freq) const;81 bool CheckFreqIsValid(const std::string &switchName, uint32_t freq) const;
82- bool CheckMemServiceflowValid(const std::string &switchName, const std::string &config) const;
83 bool CheckDuplicateSocPmu(const std::string &oriStr) const;82 bool CheckDuplicateSocPmu(const std::string &oriStr) const;
84 ProfSocPmuType GetSocPmuInfo(std::string &socPmuStr, std::string &eventStr) const;83 ProfSocPmuType GetSocPmuInfo(std::string &socPmuStr, std::string &eventStr) const;
85 bool CheckSocPmuEventsValid(ProfSocPmuType type, const std::vector<std::string> &events) const;84 bool CheckSocPmuEventsValid(ProfSocPmuType type, const std::vector<std::string> &events) const;
@@ -91,7 +90,6 @@ public:
91 bool CheckNtsMetricsIsValid(SHARED_PTR_ALIA<analysis::dvvp::message::ProfileParams> params) const;90 bool CheckNtsMetricsIsValid(SHARED_PTR_ALIA<analysis::dvvp::message::ProfileParams> params) const;
92 91 
93private:92private:
94- bool CheckControlSwitchProfiling(SHARED_PTR_ALIA<analysis::dvvp::message::ProfileParams> params);
95 bool CheckTsSwitchProfiling(SHARED_PTR_ALIA<analysis::dvvp::message::ProfileParams> params);93 bool CheckTsSwitchProfiling(SHARED_PTR_ALIA<analysis::dvvp::message::ProfileParams> params);
96 bool CheckPmuSwitchProfiling(SHARED_PTR_ALIA<analysis::dvvp::message::ProfileParams> params);94 bool CheckPmuSwitchProfiling(SHARED_PTR_ALIA<analysis::dvvp::message::ProfileParams> params);
97 bool IsValidInterval(const int32_t interval, const std::string &logKey) const;95 bool IsValidInterval(const int32_t interval, const std::string &logKey) const;
@@ -61,14 +61,12 @@ const std::vector<std::string> ACLJSON_CONFIG_VECTOR = {
61 "msproftx",61 "msproftx",
62 "instr_profiling",62 "instr_profiling",
63 "instr_profiling_freq",63 "instr_profiling_freq",
64- "task_tsfw",
65 "ascendcl",64 "ascendcl",
66 "task_time",65 "task_time",
67 "runtime_api",66 "runtime_api",
68 "ge_api",67 "ge_api",
69 "task_memory",68 "task_memory",
70 "sys_hardware_mem_freq",69 "sys_hardware_mem_freq",
71- "sys_mem_serviceflow",
72 "llc_profiling",70 "llc_profiling",
73 "sys_io_sampling_freq",71 "sys_io_sampling_freq",
74 "sys_interconnection_freq",72 "sys_interconnection_freq",
@@ -98,12 +96,10 @@ const std::vector<std::string> GEOPTION_CONFIG_VECTOR = {
98 "msproftx",96 "msproftx",
99 "instr_profiling",97 "instr_profiling",
100 "instr_profiling_freq",98 "instr_profiling_freq",
101- "task_tsfw",
102 "runtime_api",99 "runtime_api",
103 "ge_api",100 "ge_api",
104 "task_memory",101 "task_memory",
105 "sys_hardware_mem_freq",102 "sys_hardware_mem_freq",
106- "sys_mem_serviceflow",
107 "llc_profiling",103 "llc_profiling",
108 "sys_io_sampling_freq",104 "sys_io_sampling_freq",
109 "sys_interconnection_freq",105 "sys_interconnection_freq",
@@ -79,7 +79,7 @@ const char *GetAclProfConfigTypeName(aclprofConfigType type)
79 "ACL_PROF_HOST_SYS_USAGE",79 "ACL_PROF_HOST_SYS_USAGE",
zhangjie
zhangjiezhangjie7月6日

GetAclProfConfigTypeName 中索引 12 处现在返回 nullptr。如果调用方未做 null 检查直接使用返回值(如 strlen、printf %s 等),将导致空指针崩溃。建议返回空字符串 "" 而非 nullptr,或在调用方增加 null 检查。

likedislike
80 "ACL_PROF_HOST_SYS_USAGE_FREQ",80 "ACL_PROF_HOST_SYS_USAGE_FREQ",
81 "ACL_PROF_LOW_POWER_FREQ",81 "ACL_PROF_LOW_POWER_FREQ",
82- "ACL_PROF_SYS_MEM_SERVICEFLOW",82+ nullptr,
83 "ACL_PROF_SYS_CPU_FREQ",83 "ACL_PROF_SYS_CPU_FREQ",
84 "ACL_PROF_OPTYPE",84 "ACL_PROF_OPTYPE",
85 "ACL_PROF_NTS_METRICS",85 "ACL_PROF_NTS_METRICS",
@@ -134,11 +134,8 @@ std::string GetJsonConfigInvalidReason(const std::string &config)
134 if (config == "host_sys_usage") {134 if (config == "host_sys_usage") {
135 return "Please input 'cpu' or 'mem'";135 return "Please input 'cpu' or 'mem'";
136 }136 }
137- if (config == "sys_mem_serviceflow") {
138- return "Please input a non-empty value";
139- }
140 if (config == "task_block") {137 if (config == "task_block") {
141- return "Please input 'all', 'on' or 'off'";138+ return "Please input 'on' or 'off'";
142 }139 }
143 return "Please input 'on' or 'off'";140 return "Please input 'on' or 'off'";
144}141}
@@ -176,8 +173,6 @@ std::string GetAclProfSetConfigReason(aclprofConfigType cfgType)
176 return GetJsonConfigInvalidReason("host_sys");173 return GetJsonConfigInvalidReason("host_sys");
177 case ACL_PROF_HOST_SYS_USAGE:174 case ACL_PROF_HOST_SYS_USAGE:
178 return GetJsonConfigInvalidReason("host_sys_usage");175 return GetJsonConfigInvalidReason("host_sys_usage");
179- case ACL_PROF_SYS_MEM_SERVICEFLOW:
180- return GetJsonConfigInvalidReason("sys_mem_serviceflow");
181 case ACL_PROF_OPTYPE:176 case ACL_PROF_OPTYPE:
182 return "Please input non-empty comma-separated op types, and total length should not exceed 256";177 return "Please input non-empty comma-separated op types, and total length should not exceed 256";
183 case ACL_PROF_NTS_METRICS:178 case ACL_PROF_NTS_METRICS:
@@ -915,7 +910,6 @@ void ProfAclMgr::AddProfLevelConf(SHARED_PTR_ALIA<analysis::dvvp::message::Profi
915 910 
916void ProfAclMgr::ChangeLevelConf(SHARED_PTR_ALIA<analysis::dvvp::message::ProfileParams> params) const911void ProfAclMgr::ChangeLevelConf(SHARED_PTR_ALIA<analysis::dvvp::message::ProfileParams> params) const
917{912{
918- // change input config [on, l0, l1, l2, l3] to level0 level1 level2, level3
919 if (params->prof_level == MSVP_PROF_L3) {913 if (params->prof_level == MSVP_PROF_L3) {
920 params->prof_level = MSVP_LEVEL_L3;914 params->prof_level = MSVP_LEVEL_L3;
921 }915 }
@@ -1074,7 +1068,6 @@ std::string ProfAclMgr::GetParamJsonStr()
1074 }1068 }
zhangjie
zhangjiezhangjie7月6日

移除了 object.RemoveByKey("memServiceflow"),但 ProfileParams 结构体中 memServiceflow 字段仍然存在。如果 ToObject 仍序列化该字段,memServiceflow 将出现在 JSON 输出中,可能导致下游组件解析异常或泄露内部数据。建议要么从 ProfileParams 中移除该字段,要么保留 RemoveByKey 调用。

likedislike
1075 NanoJson::Json object;1069 NanoJson::Json object;
1076 params_->ToObject(object);1070 params_->ToObject(object);
1077- object.RemoveByKey("memServiceflow");
1078 object.RemoveByKey("ubProfiling");1071 object.RemoveByKey("ubProfiling");
1079 object.RemoveByKey("ubInterval");1072 object.RemoveByKey("ubInterval");
1080 object.RemoveByKey("opType");1073 object.RemoveByKey("opType");
@@ -1715,7 +1708,6 @@ void ProfAclMgr::UpdateDataTypeConfigBySwitches(const SHARED_PTR_ALIA<analysis::
1715 UpdateDataTypeConfigBySwitch(params->hwts_log, PROF_TASK_TIME);1708 UpdateDataTypeConfigBySwitch(params->hwts_log, PROF_TASK_TIME);
1716 UpdateDataTypeConfigBySwitch(params->aicpuTrace, PROF_AICPU_TRACE);1709 UpdateDataTypeConfigBySwitch(params->aicpuTrace, PROF_AICPU_TRACE);
1717 UpdateDataTypeConfigBySwitch(params->runtimeApi, PROF_RUNTIME_API);1710 UpdateDataTypeConfigBySwitch(params->runtimeApi, PROF_RUNTIME_API);
1718- UpdateDataTypeConfigBySwitch(params->taskTsfw, PROF_TASK_TSFW);
1719 UpdateDataTypeConfigBySwitch(params->runtimeTrace, PROF_RUNTIME_TRACE);1711 UpdateDataTypeConfigBySwitch(params->runtimeTrace, PROF_RUNTIME_TRACE);
1720 UpdateDataTypeConfigBySwitch(params->ts_fw_training, PROF_TRAINING_TRACE);1712 UpdateDataTypeConfigBySwitch(params->ts_fw_training, PROF_TRAINING_TRACE);
1721 UpdateDataTypeConfigBySwitch(params->ts_keypoint, PROF_TRAINING_TRACE);1713 UpdateDataTypeConfigBySwitch(params->ts_keypoint, PROF_TRAINING_TRACE);
@@ -1789,21 +1781,14 @@ int32_t ProfAclMgr::MsprofAclJsonParamConstruct(NanoJson::Json &acljsonCfg)
1789 params_->runtimeApi = GetJsonStringParam(acljsonCfg, "runtime_api", MSVP_PROF_ON);1781 params_->runtimeApi = GetJsonStringParam(acljsonCfg, "runtime_api", MSVP_PROF_ON);
zhangjie
zhangjiezhangjie7月6日

MsprofAclJsonParamConstruct 中仍调用 L2CacheAdaptor(params_->npuEvents, ...),但命令行 --npu-events 选项和 ARGS_NPU_EVENTS 已被移除,npuEvents 字段将永远为空。如果 L2CacheAdaptor 依赖非空的 npuEvents 进行 L2 cache 事件适配,可能导致 L2 cache 采集功能退化。需确认 L2CacheAdaptor 对空 npuEvents 的处理是否正确。

likedislike
1790 params_->taskTrace = GetJsonStringParam(acljsonCfg, "task_time", MSVP_PROF_ON);1782 params_->taskTrace = GetJsonStringParam(acljsonCfg, "task_time", MSVP_PROF_ON);
1791 params_->prof_level = params_->taskTrace;1783 params_->prof_level = params_->taskTrace;
1792- if (GetJsonStringParam(acljsonCfg, "task_block", MSVP_PROF_OFF).compare(MSVP_PROF_ALL) == 0) {1784+ params_->taskBlock = GetJsonStringParam(acljsonCfg, "task_block", MSVP_PROF_OFF);
1793- params_->taskBlock = MSVP_PROF_ON;1785+ params_->taskBlockShink = params_->taskBlock.compare(MSVP_PROF_ON) == 0 ? MSVP_PROF_ON : MSVP_PROF_OFF;
1794- params_->taskBlockShink = MSVP_PROF_OFF;
1795- } else {
1796- params_->taskBlock = GetJsonStringParam(acljsonCfg, "task_block", MSVP_PROF_OFF);
1797- params_->taskBlockShink = params_->taskBlock.compare(MSVP_PROF_ON) == 0 ? MSVP_PROF_ON : MSVP_PROF_OFF;
1798- }
1799- params_->taskTsfw = GetJsonStringParam(acljsonCfg, "task_tsfw", MSVP_PROF_OFF);
1800 params_->aicpuTrace = GetJsonStringParam(acljsonCfg, "aicpu", MSVP_PROF_OFF);1786 params_->aicpuTrace = GetJsonStringParam(acljsonCfg, "aicpu", MSVP_PROF_OFF);
1801 params_->hcclTrace = GetJsonStringParam(acljsonCfg, "hccl", MSVP_PROF_OFF);1787 params_->hcclTrace = GetJsonStringParam(acljsonCfg, "hccl", MSVP_PROF_OFF);
1802 params_->msproftx = GetJsonStringParam(acljsonCfg, "msproftx", MSVP_PROF_OFF);1788 params_->msproftx = GetJsonStringParam(acljsonCfg, "msproftx", MSVP_PROF_OFF);
1803 params_->l2CacheTaskProfiling = GetJsonStringParam(acljsonCfg, "l2", MSVP_PROF_OFF);1789 params_->l2CacheTaskProfiling = GetJsonStringParam(acljsonCfg, "l2", MSVP_PROF_OFF);
1804 Platform::instance()->L2CacheAdaptor(params_->npuEvents, params_->l2CacheTaskProfiling,1790 Platform::instance()->L2CacheAdaptor(params_->npuEvents, params_->l2CacheTaskProfiling,
1805 params_->l2CacheTaskProfilingEvents);1791 params_->l2CacheTaskProfilingEvents);
1806- params_->memServiceflow = GetJsonStringParam(acljsonCfg, "sys_mem_serviceflow", MSVP_PROF_EMPTY_STRING);
1807 ChangeLevelConf(params_);1792 ChangeLevelConf(params_);
1808 AddCcuInstruction(params_);1793 AddCcuInstruction(params_);
1809 MsprofAclJsonParamAdaper(params_);1794 MsprofAclJsonParamAdaper(params_);
@@ -1942,14 +1927,8 @@ void ProfAclMgr::MsprofInitGeOptionsParamAdaper(SHARED_PTR_ALIA<analysis::dvvp::
1942 params->taskTrace = GetJsonStringParam(geoptionCfg, "task_trace", MSVP_PROF_ON);1927 params->taskTrace = GetJsonStringParam(geoptionCfg, "task_trace", MSVP_PROF_ON);
1943 params->taskTrace = GetJsonStringParam(geoptionCfg, "task_time", MSVP_PROF_ON);1928 params->taskTrace = GetJsonStringParam(geoptionCfg, "task_time", MSVP_PROF_ON);
1944 params->prof_level = params->taskTrace;1929 params->prof_level = params->taskTrace;
1945- if (GetJsonStringParam(geoptionCfg, "task_block", MSVP_PROF_OFF).compare(MSVP_PROF_ALL) == 0) {1930+ params->taskBlock = GetJsonStringParam(geoptionCfg, "task_block", MSVP_PROF_OFF);
1946- params->taskBlock = MSVP_PROF_ON;1931+ params->taskBlockShink = params->taskBlock.compare(MSVP_PROF_ON) == 0 ? MSVP_PROF_ON : MSVP_PROF_OFF;
1947- params->taskBlockShink = MSVP_PROF_OFF;
1948- } else {
1949- params->taskBlock = GetJsonStringParam(geoptionCfg, "task_block", MSVP_PROF_OFF);
1950- params->taskBlockShink = params->taskBlock.compare(MSVP_PROF_ON) == 0 ? MSVP_PROF_ON : MSVP_PROF_OFF;
1951- }
1952- params->taskTsfw = GetJsonStringParam(geoptionCfg, "task_tsfw", MSVP_PROF_OFF);
1953 params->aicpuTrace = GetJsonStringParam(geoptionCfg, "aicpu", MSVP_PROF_OFF);1932 params->aicpuTrace = GetJsonStringParam(geoptionCfg, "aicpu", MSVP_PROF_OFF);
1954 params->hcclTrace = GetJsonStringParam(geoptionCfg, "hccl", MSVP_PROF_OFF);1933 params->hcclTrace = GetJsonStringParam(geoptionCfg, "hccl", MSVP_PROF_OFF);
1955 params->ts_fw_training = GetJsonStringParam(geoptionCfg, "training_trace", MSVP_PROF_OFF);1934 params->ts_fw_training = GetJsonStringParam(geoptionCfg, "training_trace", MSVP_PROF_OFF);
@@ -2052,7 +2031,6 @@ int32_t ProfAclMgr::MsprofGeOptionsParamConstruct(const std::string &jobInfo,
2052 MSPROF_LOGW("storage_limit para is invalid");2031 MSPROF_LOGW("storage_limit para is invalid");
2053 }2032 }
2054 storageLimit_ = params_->storageLimit;2033 storageLimit_ = params_->storageLimit;
2055- params_->memServiceflow = GetJsonStringParam(geoptionCfg, "sys_mem_serviceflow", MSVP_PROF_EMPTY_STRING);
2056 2034 
2057 params_->instrProfiling = GetJsonStringParam(geoptionCfg, "instr_profiling", MSVP_PROF_OFF);2035 params_->instrProfiling = GetJsonStringParam(geoptionCfg, "instr_profiling", MSVP_PROF_OFF);
2058 if (Platform::instance()->CheckIfSupport(PLATFORM_TASK_INSTR_PROFILING)) {2036 if (Platform::instance()->CheckIfSupport(PLATFORM_TASK_INSTR_PROFILING)) {
@@ -49,14 +49,12 @@ enum MsprofArgsType {
49 ARGS_AIC_METRICS,49 ARGS_AIC_METRICS,
50 ARGS_AIV_MODE,50 ARGS_AIV_MODE,
51 ARGS_AIV_METRICS,51 ARGS_AIV_METRICS,
52- ARGS_NPU_EVENTS,
53 ARGS_SYS_DEVICES,52 ARGS_SYS_DEVICES,
54 ARGS_LLC_PROFILING,53 ARGS_LLC_PROFILING,
55 ARGS_PYTHON_PATH,54 ARGS_PYTHON_PATH,
56 ARGS_SUMMARY_FORMAT,55 ARGS_SUMMARY_FORMAT,
57 ARGS_EXPORT_TYPE,56 ARGS_EXPORT_TYPE,
58 ARGS_REPORTS,57 ARGS_REPORTS,
59- ARGS_MEM_SERVICEFLOW,
60 ARGS_OPTYPE,58 ARGS_OPTYPE,
61 ARGS_RULE,59 ARGS_RULE,
62 // switch60 // switch
@@ -65,7 +63,6 @@ enum MsprofArgsType {
65 ARGS_AIV,63 ARGS_AIV,
66 ARGS_MODEL_EXECUTION,64 ARGS_MODEL_EXECUTION,
67 ARGS_RUNTIME_API,65 ARGS_RUNTIME_API,
68- ARGS_TASK_TSFW,
69 ARGS_TASK_TIME,66 ARGS_TASK_TIME,
70 ARGS_GE_API,67 ARGS_GE_API,
71 ARGS_TASK_TRACE,68 ARGS_TASK_TRACE,
@@ -104,8 +101,8 @@ enum MsprofArgsType {
104 ARGS_CPU_SAMPLING_FREQ, // 50 1-50 hz101 ARGS_CPU_SAMPLING_FREQ, // 50 1-50 hz
zhangjie
zhangjiezhangjie7月6日

ARGS_INVALID 的值从 67 改为 63,且位置移到 ARGS_SYS_LOW_POWER_FREQ 之前。这导致后续所有枚举值(ARGS_SYS_LOW_POWER_FREQ、ARGS_EXPORT_ITERATION_ID 等)的数值发生变化。如果有任何代码依赖这些枚举的具体数值(如序列化、持久化),将导致不兼容。

likedislike
105 ARGS_INTERCONNECTION_FREQ, // 50 1-50 hz102 ARGS_INTERCONNECTION_FREQ, // 50 1-50 hz
106 ARGS_HOST_SYS_USAGE_FREQ, // 50 1-50 hz103 ARGS_HOST_SYS_USAGE_FREQ, // 50 1-50 hz
104+ ARGS_INVALID = 63, // OsalGetOptLong will return opt = 63 for invalid argument
107 ARGS_SYS_LOW_POWER_FREQ, // 10000 1-10000hz105 ARGS_SYS_LOW_POWER_FREQ, // 10000 1-10000hz
atomgit-bot
atomgit-botatomgit-bot7月2日

🔴 Critical

变更行:input_parser.h 第105行将 ARGS_INVALID = 67 改为 ARGS_INVALID = 63

枚举值计算:

两者值相同(63),造成枚举值冲突

直接影响:ProcessOptions 函数(input_parser.cpp:166)有检查: if (opt < ARGS_HELP || opt >= NR_ARGS || opt == static_cast<int32_t>(ARGS_INVALID)) { MsprofCmdUsage(""); return ret; }

当用户传入 --host-sys-usage-freq 时,getopt_long 返回 63(= ARGS_HOST_SYS_USAGE_FREQ),但上述检查会将 63 判定为无效参数(ARGS_INVALID),导致 --host-sys-usage-freq 选项完全失效

测试影响:input_parser_utest.cpp:960EXPECT_EQ(67, ARGS_INVALID) 未更新,将测试失败。且 LONG_OPTIONS[63] 现在是 host-sys-usage-freq 而非 invalid

触发条件:任何使用 --host-sys-usage-freq 的命令行调用。 失败模式:该选项被当作无效参数拒绝,显示 usage 帮助信息。

建议ARGS_INVALID 的值应设置为紧随其他所有枚举项之后,避免与任何有效参数枚举值冲突。由于移除了 ARGS_NPU_EVENTSARGS_MEM_SERVICEFLOWARGS_TASK_TSFW(共3项)并新增了 ARGS_SCALE(1项),枚举值净减少2。原 ARGS_INVALID = 67 应改为 ARGS_INVALID = 65。同时需将 {"invalid", ...} 条目在 LONG_OPTIONS 数组中移动到索引 65 的位置,并更新测试 EXPECT_EQ(65, ARGS_INVALID)

likedislike
不准确?
108- ARGS_INVALID = 67,
109 ARGS_EXPORT_ITERATION_ID,106 ARGS_EXPORT_ITERATION_ID,
110 ARGS_EXPORT_MODEL_ID,107 ARGS_EXPORT_MODEL_ID,
111 // host108 // host
@@ -135,14 +132,12 @@ const OsalStructOption LONG_OPTIONS[] = {
135 {"aic-metrics", OSAL_OPTIONAL_ARG, nullptr, ARGS_AIC_METRICS},132 {"aic-metrics", OSAL_OPTIONAL_ARG, nullptr, ARGS_AIC_METRICS},
136 {"aiv-mode", OSAL_OPTIONAL_ARG, nullptr, ARGS_AIV_MODE},133 {"aiv-mode", OSAL_OPTIONAL_ARG, nullptr, ARGS_AIV_MODE},
137 {"aiv-metrics", OSAL_OPTIONAL_ARG, nullptr, ARGS_AIV_METRICS},134 {"aiv-metrics", OSAL_OPTIONAL_ARG, nullptr, ARGS_AIV_METRICS},
138- {"npu-events", OSAL_OPTIONAL_ARG, nullptr, ARGS_NPU_EVENTS},
139 {"sys-devices", OSAL_OPTIONAL_ARG, nullptr, ARGS_SYS_DEVICES},135 {"sys-devices", OSAL_OPTIONAL_ARG, nullptr, ARGS_SYS_DEVICES},
140 {"llc-profiling", OSAL_OPTIONAL_ARG, nullptr, ARGS_LLC_PROFILING},136 {"llc-profiling", OSAL_OPTIONAL_ARG, nullptr, ARGS_LLC_PROFILING},
141 {"python-path", OSAL_OPTIONAL_ARG, nullptr, ARGS_PYTHON_PATH},137 {"python-path", OSAL_OPTIONAL_ARG, nullptr, ARGS_PYTHON_PATH},
142 {"summary-format", OSAL_OPTIONAL_ARG, nullptr, ARGS_SUMMARY_FORMAT},138 {"summary-format", OSAL_OPTIONAL_ARG, nullptr, ARGS_SUMMARY_FORMAT},
143 {"type", OSAL_OPTIONAL_ARG, nullptr, ARGS_EXPORT_TYPE},139 {"type", OSAL_OPTIONAL_ARG, nullptr, ARGS_EXPORT_TYPE},
144 {"reports", OSAL_OPTIONAL_ARG, nullptr, ARGS_REPORTS},140 {"reports", OSAL_OPTIONAL_ARG, nullptr, ARGS_REPORTS},
145- {"sys-mem-serviceflow", OSAL_OPTIONAL_ARG, nullptr, ARGS_MEM_SERVICEFLOW},
146 {"optype", OSAL_OPTIONAL_ARG, nullptr, ARGS_OPTYPE},141 {"optype", OSAL_OPTIONAL_ARG, nullptr, ARGS_OPTYPE},
147 {"rule", OSAL_OPTIONAL_ARG, nullptr, ARGS_RULE},142 {"rule", OSAL_OPTIONAL_ARG, nullptr, ARGS_RULE},
148 // switch143 // switch
@@ -151,7 +146,6 @@ const OsalStructOption LONG_OPTIONS[] = {
151 {"ai-vector-core", OSAL_OPTIONAL_ARG, nullptr, ARGS_AIV},146 {"ai-vector-core", OSAL_OPTIONAL_ARG, nullptr, ARGS_AIV},
152 {"model-execution", OSAL_OPTIONAL_ARG, nullptr, ARGS_MODEL_EXECUTION}, // the default value is off147 {"model-execution", OSAL_OPTIONAL_ARG, nullptr, ARGS_MODEL_EXECUTION}, // the default value is off
153 {"runtime-api", OSAL_OPTIONAL_ARG, nullptr, ARGS_RUNTIME_API}, // the default value is off148 {"runtime-api", OSAL_OPTIONAL_ARG, nullptr, ARGS_RUNTIME_API}, // the default value is off
154- {"task-tsfw", OSAL_OPTIONAL_ARG, nullptr, ARGS_TASK_TSFW}, // the default value is off
155 {"task-time", OSAL_OPTIONAL_ARG, nullptr, ARGS_TASK_TIME}, // the default value is on149 {"task-time", OSAL_OPTIONAL_ARG, nullptr, ARGS_TASK_TIME}, // the default value is on
156 {"ge-api", OSAL_OPTIONAL_ARG, nullptr, ARGS_GE_API},150 {"ge-api", OSAL_OPTIONAL_ARG, nullptr, ARGS_GE_API},
157 {"task-trace", OSAL_OPTIONAL_ARG, nullptr, ARGS_TASK_TRACE}, // the default value is on151 {"task-trace", OSAL_OPTIONAL_ARG, nullptr, ARGS_TASK_TRACE}, // the default value is on
@@ -190,8 +184,8 @@ const OsalStructOption LONG_OPTIONS[] = {
190 {"sys-cpu-freq", OSAL_OPTIONAL_ARG, nullptr, ARGS_CPU_SAMPLING_FREQ},184 {"sys-cpu-freq", OSAL_OPTIONAL_ARG, nullptr, ARGS_CPU_SAMPLING_FREQ},
191 {"sys-interconnection-freq", OSAL_OPTIONAL_ARG, nullptr, ARGS_INTERCONNECTION_FREQ},185 {"sys-interconnection-freq", OSAL_OPTIONAL_ARG, nullptr, ARGS_INTERCONNECTION_FREQ},
192 {"host-sys-usage-freq", OSAL_OPTIONAL_ARG, nullptr, ARGS_HOST_SYS_USAGE_FREQ},186 {"host-sys-usage-freq", OSAL_OPTIONAL_ARG, nullptr, ARGS_HOST_SYS_USAGE_FREQ},
193- {"sys-lp-freq", OSAL_OPTIONAL_ARG, nullptr, ARGS_SYS_LOW_POWER_FREQ},
194 {"invalid", OSAL_OPTIONAL_ARG, nullptr, ARGS_INVALID},187 {"invalid", OSAL_OPTIONAL_ARG, nullptr, ARGS_INVALID},
188+ {"sys-lp-freq", OSAL_OPTIONAL_ARG, nullptr, ARGS_SYS_LOW_POWER_FREQ},
195 {"iteration-id", OSAL_OPTIONAL_ARG, nullptr, ARGS_EXPORT_ITERATION_ID},189 {"iteration-id", OSAL_OPTIONAL_ARG, nullptr, ARGS_EXPORT_ITERATION_ID},
196 {"model-id", OSAL_OPTIONAL_ARG, nullptr, ARGS_EXPORT_MODEL_ID},190 {"model-id", OSAL_OPTIONAL_ARG, nullptr, ARGS_EXPORT_MODEL_ID},
197 // host191 // host
@@ -235,9 +229,6 @@ private:
235 void SetSwitchParam(int32_t opt, const char *value);229 void SetSwitchParam(int32_t opt, const char *value);
236 bool IsSwitchValid2Handled(int32_t opt) const;230 bool IsSwitchValid2Handled(int32_t opt) const;
237 int32_t CheckArgRange(const struct MsprofCmdInfo &cmdInfo, int32_t opt, uint32_t min, uint32_t max) const;231 int32_t CheckArgRange(const struct MsprofCmdInfo &cmdInfo, int32_t opt, uint32_t min, uint32_t max) const;
238-#ifndef BUILD_OPEN_PROJECT
239- int32_t CheckNpuEventsValid(const struct MsprofCmdInfo &cmdInfo, int32_t opt) const;
240-#endif // BUILD_OPEN_PROJECT
241 int32_t CheckCmdScaleIsValid(const struct MsprofCmdInfo &cmdInfo) const;232 int32_t CheckCmdScaleIsValid(const struct MsprofCmdInfo &cmdInfo) const;
242 int32_t CheckAiCoreMetricsValid(const struct MsprofCmdInfo &cmdInfo, int32_t opt) const;233 int32_t CheckAiCoreMetricsValid(const struct MsprofCmdInfo &cmdInfo, int32_t opt) const;
243 std::string GeneratePrompts() const;234 std::string GeneratePrompts() const;
@@ -245,9 +236,6 @@ private:
245 int32_t CheckExportSummaryFormat(const struct MsprofCmdInfo &cmdInfo) const;236 int32_t CheckExportSummaryFormat(const struct MsprofCmdInfo &cmdInfo) const;
246 int32_t CheckExportType(const struct MsprofCmdInfo &cmdInfo) const;237 int32_t CheckExportType(const struct MsprofCmdInfo &cmdInfo) const;
247 int32_t CheckReports(const struct MsprofCmdInfo &cmdInfo) const;238 int32_t CheckReports(const struct MsprofCmdInfo &cmdInfo) const;
248-#ifndef BUILD_OPEN_PROJECT
249- int32_t CheckMemServiceflow(const struct MsprofCmdInfo &cmdInfo) const;
250-#endif // BUILD_OPEN_PROJECT
251 int32_t CheckAnalyzeRuleSwitch(const struct MsprofCmdInfo &cmdInfo) const;239 int32_t CheckAnalyzeRuleSwitch(const struct MsprofCmdInfo &cmdInfo) const;
252 int32_t CheckLlcProfilingValid(const struct MsprofCmdInfo &cmdInfo);240 int32_t CheckLlcProfilingValid(const struct MsprofCmdInfo &cmdInfo);
253 int32_t CheckSysPeriodValid(const struct MsprofCmdInfo &cmdInfo) const;241 int32_t CheckSysPeriodValid(const struct MsprofCmdInfo &cmdInfo) const;
@@ -1185,7 +1185,7 @@ int32_t InputParser::PreCheckPlatform(int32_t opt, CONST_CHAR_PTR argv[])
1185{1185{
1186 std::vector<MsprofArgsType> socBlackSwith = {ARGS_HOST_SYS, ARGS_HOST_SYS_PID, ARGS_HOST_SYS_USAGE,1186 std::vector<MsprofArgsType> socBlackSwith = {ARGS_HOST_SYS, ARGS_HOST_SYS_PID, ARGS_HOST_SYS_USAGE,
1187 ARGS_HOST_SYS_USAGE_FREQ, ARGS_PARSE, ARGS_QUERY, ARGS_EXPORT, ARGS_EXPORT_ITERATION_ID, ARGS_EXPORT_MODEL_ID,1187 ARGS_HOST_SYS_USAGE_FREQ, ARGS_PARSE, ARGS_QUERY, ARGS_EXPORT, ARGS_EXPORT_ITERATION_ID, ARGS_EXPORT_MODEL_ID,
1188- ARGS_SUMMARY_FORMAT, ARGS_PYTHON_PATH, ARGS_ANALYZE, ARGS_RULE, ARGS_MEM_SERVICEFLOW, ARGS_OPTYPE};1188+ ARGS_SUMMARY_FORMAT, ARGS_PYTHON_PATH, ARGS_ANALYZE, ARGS_RULE, ARGS_OPTYPE};
1189 Analysis::Dvvp::Common::Config::PlatformType platformType = ConfigManager::instance()->GetPlatformType();1189 Analysis::Dvvp::Common::Config::PlatformType platformType = ConfigManager::instance()->GetPlatformType();
1190#ifndef BUILD_OPEN_PROJECT1190#ifndef BUILD_OPEN_PROJECT
1191 if (platformType < PlatformType::MINI_TYPE || platformType >= PlatformType::END_TYPE) {1191 if (platformType < PlatformType::MINI_TYPE || platformType >= PlatformType::END_TYPE) {
@@ -1213,21 +1213,20 @@ void InputParser::InitOpenBlackLists(std::map<PlatformType, std::vector<MsprofAr
1213#ifndef BUILD_OPEN_PROJECT1213#ifndef BUILD_OPEN_PROJECT
1214 std::vector<MsprofArgsType> miniBlackSwith = {ARGS_INTERCONNECTION_PROFILING, ARGS_INTERCONNECTION_FREQ,1214 std::vector<MsprofArgsType> miniBlackSwith = {ARGS_INTERCONNECTION_PROFILING, ARGS_INTERCONNECTION_FREQ,
1215 ARGS_L2_PROFILING, ARGS_AIV, ARGS_AIV_FREQ, ARGS_AIV_MODE, ARGS_AIV_METRICS, ARGS_STORAGE_LIMIT,1215 ARGS_L2_PROFILING, ARGS_AIV, ARGS_AIV_FREQ, ARGS_AIV_MODE, ARGS_AIV_METRICS, ARGS_STORAGE_LIMIT,
1216- ARGS_TASK_BLOCK, ARGS_INSTR_PROFILING, ARGS_INSTR_PROFILING_FREQ, ARGS_DYNAMIC_PROF, ARGS_DYNAMIC_PROF_PID,1216+ ARGS_TASK_BLOCK, ARGS_INSTR_PROFILING, ARGS_INSTR_PROFILING_FREQ, ARGS_DYNAMIC_PROF, ARGS_DYNAMIC_PROF_PID, ARGS_DELAY_PROF, ARGS_DURATION_PROF, ARGS_SYS_LOW_POWER, ARGS_SYS_LOW_POWER_FREQ,
1217- ARGS_NPU_EVENTS, ARGS_DELAY_PROF, ARGS_DURATION_PROF, ARGS_SYS_LOW_POWER, ARGS_SYS_LOW_POWER_FREQ,1217+ ARGS_OPTYPE};
1218- ARGS_MEM_SERVICEFLOW, ARGS_OPTYPE};
1219#endif // BUILD_OPEN_PROJECT1218#endif // BUILD_OPEN_PROJECT
1220 std::vector<MsprofArgsType> cloudBlackSwith = {ARGS_AIV, ARGS_AIV_FREQ, ARGS_AIV_MODE, ARGS_AIV_METRICS,1219 std::vector<MsprofArgsType> cloudBlackSwith = {ARGS_AIV, ARGS_AIV_FREQ, ARGS_AIV_MODE, ARGS_AIV_METRICS,
1221 ARGS_TASK_BLOCK, ARGS_SYS_LOW_POWER, ARGS_SYS_LOW_POWER_FREQ, ARGS_INSTR_PROFILING, ARGS_INSTR_PROFILING_FREQ,1220 ARGS_TASK_BLOCK, ARGS_SYS_LOW_POWER, ARGS_SYS_LOW_POWER_FREQ, ARGS_INSTR_PROFILING, ARGS_INSTR_PROFILING_FREQ,
1222- ARGS_MEM_SERVICEFLOW, ARGS_OPTYPE};1221+ ARGS_OPTYPE};
1223 std::vector<MsprofArgsType> dcBlackSwith = {ARGS_AIV, ARGS_AIV_FREQ, ARGS_AIV_MODE, ARGS_AIV_METRICS,1222 std::vector<MsprofArgsType> dcBlackSwith = {ARGS_AIV, ARGS_AIV_FREQ, ARGS_AIV_MODE, ARGS_AIV_METRICS,
1224 ARGS_IO_PROFILING, ARGS_IO_SAMPLING_FREQ, ARGS_TASK_BLOCK, ARGS_INSTR_PROFILING,1223 ARGS_IO_PROFILING, ARGS_IO_SAMPLING_FREQ, ARGS_TASK_BLOCK, ARGS_INSTR_PROFILING,
1225- ARGS_INSTR_PROFILING_FREQ, ARGS_SYS_LOW_POWER, ARGS_SYS_LOW_POWER_FREQ, ARGS_MEM_SERVICEFLOW, ARGS_OPTYPE};1224+ ARGS_INSTR_PROFILING_FREQ, ARGS_SYS_LOW_POWER, ARGS_SYS_LOW_POWER_FREQ, ARGS_OPTYPE};
1226 std::vector<MsprofArgsType> cloudBlackSwithV2 = {ARGS_AIV, ARGS_AIV_FREQ, ARGS_AIV_MODE, ARGS_AIV_METRICS,1225 std::vector<MsprofArgsType> cloudBlackSwithV2 = {ARGS_AIV, ARGS_AIV_FREQ, ARGS_AIV_MODE, ARGS_AIV_METRICS,
1227 ARGS_SYS_LOW_POWER, ARGS_SYS_LOW_POWER_FREQ, ARGS_OPTYPE};1226 ARGS_SYS_LOW_POWER, ARGS_SYS_LOW_POWER_FREQ, ARGS_OPTYPE};
1228 std::vector<MsprofArgsType> miniV3BlackSwith = {ARGS_AIV, ARGS_AIV_FREQ, ARGS_AIV_MODE, ARGS_AIV_METRICS,1227 std::vector<MsprofArgsType> miniV3BlackSwith = {ARGS_AIV, ARGS_AIV_FREQ, ARGS_AIV_MODE, ARGS_AIV_METRICS,
1229 ARGS_INTERCONNECTION_PROFILING, ARGS_INTERCONNECTION_FREQ, ARGS_INSTR_PROFILING, ARGS_INSTR_PROFILING_FREQ,1228 ARGS_INTERCONNECTION_PROFILING, ARGS_INTERCONNECTION_FREQ, ARGS_INSTR_PROFILING, ARGS_INSTR_PROFILING_FREQ,
1230- ARGS_SYS_LOW_POWER, ARGS_SYS_LOW_POWER_FREQ, ARGS_MEM_SERVICEFLOW, ARGS_OPTYPE};1229+ ARGS_SYS_LOW_POWER, ARGS_SYS_LOW_POWER_FREQ, ARGS_OPTYPE};
1231 #ifndef BUILD_OPEN_PROJECT1230 #ifndef BUILD_OPEN_PROJECT
1232 platformArgsType[PlatformType::MINI_TYPE] = miniBlackSwith;1231 platformArgsType[PlatformType::MINI_TYPE] = miniBlackSwith;
1233#endif // BUILD_OPEN_PROJECT1232#endif // BUILD_OPEN_PROJECT
@@ -1245,12 +1244,12 @@ void InputParser::InitClosedBlackLists(std::map<PlatformType, std::vector<Msprof
1245 ARGS_SUMMARY_FORMAT, ARGS_PARSE, ARGS_QUERY, ARGS_EXPORT, ARGS_EXPORT_ITERATION_ID, ARGS_EXPORT_MODEL_ID,1244 ARGS_SUMMARY_FORMAT, ARGS_PARSE, ARGS_QUERY, ARGS_EXPORT, ARGS_EXPORT_ITERATION_ID, ARGS_EXPORT_MODEL_ID,
1246 ARGS_INSTR_PROFILING, ARGS_INSTR_PROFILING_FREQ, ARGS_DYNAMIC_PROF, ARGS_DYNAMIC_PROF_PID, ARGS_ANALYZE,1245 ARGS_INSTR_PROFILING, ARGS_INSTR_PROFILING_FREQ, ARGS_DYNAMIC_PROF, ARGS_DYNAMIC_PROF_PID, ARGS_ANALYZE,
1247 ARGS_RULE, ARGS_DELAY_PROF, ARGS_DURATION_PROF, ARGS_SYS_LOW_POWER, ARGS_SYS_LOW_POWER_FREQ,1246 ARGS_RULE, ARGS_DELAY_PROF, ARGS_DURATION_PROF, ARGS_SYS_LOW_POWER, ARGS_SYS_LOW_POWER_FREQ,
1248- ARGS_MEM_SERVICEFLOW, ARGS_OPTYPE};1247+ ARGS_OPTYPE};
1249 std::vector<MsprofArgsType> mdcMiniV3BlackSwith = {ARGS_AICPU, ARGS_AIV, ARGS_AIV_FREQ, ARGS_AIV_MODE, ARGS_QUERY,1248 std::vector<MsprofArgsType> mdcMiniV3BlackSwith = {ARGS_AICPU, ARGS_AIV, ARGS_AIV_FREQ, ARGS_AIV_MODE, ARGS_QUERY,
1250 ARGS_AIV_METRICS, ARGS_INTERCONNECTION_PROFILING, ARGS_INTERCONNECTION_FREQ, ARGS_DYNAMIC_PROF, ARGS_EXPORT,1249 ARGS_AIV_METRICS, ARGS_INTERCONNECTION_PROFILING, ARGS_INTERCONNECTION_FREQ, ARGS_DYNAMIC_PROF, ARGS_EXPORT,
1251 ARGS_HOST_SYS, ARGS_HOST_SYS_PID, ARGS_EXPORT_ITERATION_ID, ARGS_INSTR_PROFILING, ARGS_INSTR_PROFILING_FREQ,1250 ARGS_HOST_SYS, ARGS_HOST_SYS_PID, ARGS_EXPORT_ITERATION_ID, ARGS_INSTR_PROFILING, ARGS_INSTR_PROFILING_FREQ,
1252 ARGS_MODEL_EXECUTION, ARGS_EXPORT_MODEL_ID, ARGS_PYTHON_PATH, ARGS_PARSE, ARGS_DYNAMIC_PROF_PID,1251 ARGS_MODEL_EXECUTION, ARGS_EXPORT_MODEL_ID, ARGS_PYTHON_PATH, ARGS_PARSE, ARGS_DYNAMIC_PROF_PID,
1253- ARGS_SUMMARY_FORMAT, ARGS_IO_PROFILING, ARGS_IO_SAMPLING_FREQ, ARGS_TASK_BLOCK, ARGS_MEM_SERVICEFLOW,1252+ ARGS_SUMMARY_FORMAT, ARGS_IO_PROFILING, ARGS_IO_SAMPLING_FREQ, ARGS_TASK_BLOCK,
1254 ARGS_ANALYZE, ARGS_RULE, ARGS_DELAY_PROF, ARGS_DURATION_PROF, ARGS_SYS_LOW_POWER, ARGS_SYS_LOW_POWER_FREQ,1253 ARGS_ANALYZE, ARGS_RULE, ARGS_DELAY_PROF, ARGS_DURATION_PROF, ARGS_SYS_LOW_POWER, ARGS_SYS_LOW_POWER_FREQ,
1255 ARGS_OPTYPE};1254 ARGS_OPTYPE};
1256 std::vector<MsprofArgsType> mdcLiteBlackSwith = {ARGS_AIV, ARGS_AIV_FREQ, ARGS_AIV_MODE, ARGS_AIV_METRICS,1255 std::vector<MsprofArgsType> mdcLiteBlackSwith = {ARGS_AIV, ARGS_AIV_FREQ, ARGS_AIV_MODE, ARGS_AIV_METRICS,
@@ -1258,7 +1257,7 @@ void InputParser::InitClosedBlackLists(std::map<PlatformType, std::vector<Msprof
1258 ARGS_AICPU, ARGS_TASK_BLOCK, ARGS_PYTHON_PATH, ARGS_SUMMARY_FORMAT, ARGS_PARSE, ARGS_QUERY,1257 ARGS_AICPU, ARGS_TASK_BLOCK, ARGS_PYTHON_PATH, ARGS_SUMMARY_FORMAT, ARGS_PARSE, ARGS_QUERY,
1259 ARGS_EXPORT, ARGS_EXPORT_ITERATION_ID, ARGS_EXPORT_MODEL_ID, ARGS_INSTR_PROFILING, ARGS_INSTR_PROFILING_FREQ,1258 ARGS_EXPORT, ARGS_EXPORT_ITERATION_ID, ARGS_EXPORT_MODEL_ID, ARGS_INSTR_PROFILING, ARGS_INSTR_PROFILING_FREQ,
1260 ARGS_DYNAMIC_PROF, ARGS_DYNAMIC_PROF_PID, ARGS_ANALYZE, ARGS_RULE, ARGS_DELAY_PROF, ARGS_DURATION_PROF,1259 ARGS_DYNAMIC_PROF, ARGS_DYNAMIC_PROF_PID, ARGS_ANALYZE, ARGS_RULE, ARGS_DELAY_PROF, ARGS_DURATION_PROF,
1261- ARGS_SYS_LOW_POWER, ARGS_SYS_LOW_POWER_FREQ, ARGS_MEM_SERVICEFLOW, ARGS_OPTYPE};1260+ ARGS_SYS_LOW_POWER, ARGS_SYS_LOW_POWER_FREQ, ARGS_OPTYPE};
1262 std::vector<MsprofArgsType> davidBlackSwith = {ARGS_AIV, ARGS_AIV_FREQ, ARGS_AIV_MODE, ARGS_AIV_METRICS};1261 std::vector<MsprofArgsType> davidBlackSwith = {ARGS_AIV, ARGS_AIV_FREQ, ARGS_AIV_MODE, ARGS_AIV_METRICS};
1263 std::vector<MsprofArgsType> david121BlackSwith = {ARGS_AIV, ARGS_AIV_FREQ, ARGS_AIV_MODE, ARGS_AIV_METRICS};1262 std::vector<MsprofArgsType> david121BlackSwith = {ARGS_AIV, ARGS_AIV_FREQ, ARGS_AIV_MODE, ARGS_AIV_METRICS};
1264 std::vector<MsprofArgsType> mdcV2BlackSwith = {ARGS_AIV, ARGS_AIV_FREQ, ARGS_AIV_MODE, ARGS_AIV_METRICS};1263 std::vector<MsprofArgsType> mdcV2BlackSwith = {ARGS_AIV, ARGS_AIV_FREQ, ARGS_AIV_MODE, ARGS_AIV_METRICS};
@@ -1495,9 +1494,6 @@ void InputParser::ParamsSwitchValid(const struct MsprofCmdInfo &cmdInfo, int32_t
1495 case ARGS_RUNTIME_API:1494 case ARGS_RUNTIME_API:
1496 params_->runtimeApi = cmdInfo.args[opt];1495 params_->runtimeApi = cmdInfo.args[opt];
1497 break;1496 break;
1498- case ARGS_TASK_TSFW:
1499- params_->taskTsfw = cmdInfo.args[opt];
1500- break;
1501 case ARGS_TASK_TIME:1497 case ARGS_TASK_TIME:
1502 params_->taskTime = cmdInfo.args[opt];1498 params_->taskTime = cmdInfo.args[opt];
1503 SetTaskTimeSwitch(cmdInfo.args[opt]);1499 SetTaskTimeSwitch(cmdInfo.args[opt]);
@@ -1563,14 +1559,6 @@ int32_t InputParser::MsprofCmdCheckValid(const struct MsprofCmdInfo &cmdInfo, in
1563 case ARGS_AIV_METRICS:1559 case ARGS_AIV_METRICS:
1564 ret = CheckAiCoreMetricsValid(cmdInfo, opt);1560 ret = CheckAiCoreMetricsValid(cmdInfo, opt);
1565 break;1561 break;
1566- case ARGS_NPU_EVENTS:
1567-#ifndef BUILD_OPEN_PROJECT
1568- ret = CheckNpuEventsValid(cmdInfo, opt);
1569-#else
1570- params_->npuEvents = cmdInfo.args[opt];
1571- ret = MSPROF_DAEMON_OK;
1572-#endif // BUILD_OPEN_PROJECT
1573- break;
1574 case ARGS_SYS_DEVICES:1562 case ARGS_SYS_DEVICES:
1575 ret = CheckSysDevicesValid(cmdInfo);1563 ret = CheckSysDevicesValid(cmdInfo);
1576 break;1564 break;
@@ -1660,13 +1648,8 @@ void InputParser::ParamsSwitchValid2(const struct MsprofCmdInfo &cmdInfo, int32_
1660 1648 
zhangjie
zhangjiezhangjie7月6日

SetTaskBlockParam 中 taskBlockShink 的逻辑与旧代码行为相反。旧代码:taskBlock=="on" 时 shink=OFF;新代码:taskBlock=="on" 时 shink=ON。虽然新逻辑与 MsprofAclJsonParamConstruct/MsprofInitGeOptionsParamAdaper 中的 JSON 路径一致(可能是 bug 修复),但这是行为变更,需确认是否符合预期,并验证对采集数据的影响。

likedislike
1661void InputParser::SetTaskBlockParam(const char *argValue)1649void InputParser::SetTaskBlockParam(const char *argValue)
1662{1650{
1663- if (strcmp(argValue, MSVP_PROF_ALL) == 0) {1651+ params_->taskBlock = argValue;
1664- params_->taskBlock = MSVP_PROF_ON;1652+ params_->taskBlockShink = params_->taskBlock.compare(MSVP_PROF_ON) == 0 ? MSVP_PROF_ON : MSVP_PROF_OFF;
1665- params_->taskBlockShink = MSVP_PROF_OFF;
1666- } else {
1667- params_->taskBlock = argValue;
1668- params_->taskBlockShink = params_->taskBlock.compare(MSVP_PROF_ON) ? MSVP_PROF_ON : MSVP_PROF_OFF;
1669- }
1670}1653}
atomgit-botatomgit-bot
atomgit-botatomgit-bot7月2日

🔴 Critical

变更行:config.h:203 删除了 const char * const MSVP_PROF_ALL = "all";,但 input_parser.cpp:1651SetTaskBlockParam() 函数中仍使用 strcmp(argValue, MSVP_PROF_ALL)。由于该文件通过 #include "config/config.h"(第 26 行)引入此常量,移除后会导致编译错误:未定义标识符 MSVP_PROF_ALL

同时,该函数中的 "all" 分支逻辑(第 1651-1653 行)与 PR 目标一致(移除 task_block 的 "all" 支持),应当一并简化为直接设置 taskBlocktaskBlockShink,与 prof_acl_mgr.cpp 中的 MsprofAclJsonParamConstruct 改动保持对齐。

建议:将 SetTaskBlockParam 函数简化为:移除 MSVP_PROF_ALL 分支,仅保留 else 分支逻辑(与 prof_acl_mgr.cpp 中的 JSON 解析改动一致)。或者如果该函数不再需要,也可以一并移除调用链。

改动建议
1653
+ void InputParser::SetTaskBlockParam(const char *argValue)
1654
+ {
1655
+ params_->taskBlock = argValue;
1656
+ params_->taskBlockShink = params_->taskBlock.compare(MSVP_PROF_ON) ? MSVP_PROF_ON : MSVP_PROF_OFF;
1653
1657
  }
应用建议
likedislike
不准确?
atomgit-botatomgit-bot7月2日

🔴 Critical

变更行:config.h 中删除了 const char * const MSVP_PROF_ALL = "all";(第203行),但 input_parser.cpp:1651SetTaskBlockParam 函数仍使用 MSVP_PROF_ALL

该函数未在此次 diff 中修改,因此引用了已删除的常量。这将导致编译错误(undefined identifier MSVP_PROF_ALL)。

触发条件:任何包含此翻译单元的构建。 失败模式:编译失败。

建议:由于 MSVP_PROF_ALL 已被删除且 "all" 不再作为有效输入选项,SetTaskBlockParam 函数应简化为直接设置 taskBlocktaskBlockShink,不再处理 "all" 到 "on" 的映射。删除 if (strcmp(argValue, MSVP_PROF_ALL) == 0) 分支,直接使用 else 分支的逻辑。

改动建议
1653
+ void InputParser::SetTaskBlockParam(const char *argValue)
1654
+ {
1655
+ params_->taskBlock = argValue;
1656
+ params_->taskBlockShink = params_->taskBlock.compare(MSVP_PROF_ON) ? MSVP_PROF_ON : MSVP_PROF_OFF;
1653
1657
  }
应用建议
likedislike
不准确?
1671 1654 
1672 1655 
@@ -1691,16 +1674,6 @@ int32_t InputParser::MsprofCmdCheckValid2(const struct MsprofCmdInfo &cmdInfo, i
1691 case ARGS_REPORTS:1674 case ARGS_REPORTS:
1692 ret = CheckReports(cmdInfo);1675 ret = CheckReports(cmdInfo);
1693 break;1676 break;
1694- case ARGS_MEM_SERVICEFLOW:
1695-#ifndef BUILD_OPEN_PROJECT
1696- ret = CheckMemServiceflow(cmdInfo);
1697-#else
1698- if (cmdInfo.args[ARGS_MEM_SERVICEFLOW] != nullptr) {
1699- params_->memServiceflow = cmdInfo.args[ARGS_MEM_SERVICEFLOW];
1700- }
1701- ret = MSPROF_DAEMON_OK;
1702-#endif // BUILD_OPEN_PROJECT
1703- break;
1704 case ARGS_RULE:1677 case ARGS_RULE:
1705 ret = CheckAnalyzeRuleSwitch(cmdInfo);1678 ret = CheckAnalyzeRuleSwitch(cmdInfo);
1706 break;1679 break;
@@ -1836,9 +1809,6 @@ void ArgsManager::AddHardWareMemArgs()
1836 llcProfiling.SetDetail("The llc profiling groups, include read, write. the default value is read.");1809 llcProfiling.SetDetail("The llc profiling groups, include read, write. the default value is read.");
1837 argsList_.push_back(hardwareMem);1810 argsList_.push_back(hardwareMem);
1838 argsList_.push_back(hardwareMemFreq);1811 argsList_.push_back(hardwareMemFreq);
1839- if (Platform::instance()->CheckIfSupport(PLATFORM_SYS_MEM_SERVICEFLOW)) {
1840- argsList_.push_back({"sys-mem-serviceflow", "The qos serviceflow group, based on user customized.", ""});
1841- }
1842 argsList_.push_back(llcProfiling);1812 argsList_.push_back(llcProfiling);
1843}1813}
1844 1814 
@@ -2050,11 +2020,7 @@ void ArgsManager::AddL2Args()
2050 smmu = " and SMMU";2020 smmu = " and SMMU";
2051 }2021 }
2052 Args l2 = {"l2", "L2 Cache" + smmu + " acquisition switch. The default value is off.", OFF};2022 Args l2 = {"l2", "L2 Cache" + smmu + " acquisition switch. The default value is off.", OFF};
2053- Args npuEvents = {"npu-events", "Customize soc pmu parameters for collection. "
2054- "The input is hexadecimal number starting with 0x. Maximum of 8 parameters can be received for MATA and SMMU."
2055- + noc};
2056 argsList_.push_back(l2);2023 argsList_.push_back(l2);
2057- argsList_.push_back(npuEvents);
2058}2024}
2059}2025}
2060}2026}
@@ -60,65 +60,6 @@ void ArgsManager::PrintMsopprofHelp()
60 std::cout << "Use binary msopprof to operator optimization (msprof op ...)" << std::endl << std::endl;60 std::cout << "Use binary msopprof to operator optimization (msprof op ...)" << std::endl << std::endl;
61}61}
62 62 
63-int32_t InputParser::CheckNpuEventsValid(const struct MsprofCmdInfo &cmdInfo, int32_t opt) const
64-{
65- params_->npuEvents = cmdInfo.args[opt];
66- if (!Platform::instance()->CheckIfSupport(PLATFORM_TASK_L2_CACHE_REG) &&
67- !Platform::instance()->CheckIfSupport(PLATFORM_TASK_SOC_PMU)) {
68- MSPROF_LOGE("Soc pmu not support on this platform.");
69- return MSPROF_DAEMON_ERROR;
70- }
71- static std::string singleEventsHead = "0x";
72- if (params_->npuEvents.compare(0, singleEventsHead.length(), singleEventsHead) == 0 &&
73- params_->npuEvents.find(";") != std::string::npos) {
74- MSPROF_LOGE("Failed to check soc pmu events, if you want to collect multiple soc pmu type, "
75- "please input prefix like [HA:] before events.");
76- CmdLog::CmdErrorLog("Failed to check soc pmu events, if you want to collect multiple soc pmu type, "
77- "please input prefix like [HA:] before events.");
78- return MSPROF_DAEMON_ERROR;
79- }
80- if (!ParamValidation::instance()->CheckDuplicateSocPmu(params_->npuEvents)) {
81- MSPROF_LOGE("Failed to check soc pmu events, please check if input duplicate soc pmu type.");
82- CmdLog::CmdErrorLog("Failed to check soc pmu events, please check if input duplicate soc pmu type.");
83- return MSPROF_DAEMON_ERROR;
84- }
85- std::vector<std::string> registerList = Utils::Split(params_->npuEvents, false, "", ";");
86- for (size_t i = 0; i < registerList.size(); ++i) {
87- std::string eventStr = "";
88- ProfSocPmuType eventType = ParamValidation::instance()->GetSocPmuInfo(registerList[i], eventStr);
89- if (eventStr.empty()) {
90- MSPROF_LOGE("Failed to check empty soc pmu events, type: %u.", static_cast<uint32_t>(eventType));
91- CmdLog::CmdErrorLog("Empty npu-events detected, please input valid npu-events.");
92- return MSPROF_DAEMON_ERROR;
93- }
94- std::vector<std::string> eventsList = Utils::Split(eventStr, false, "", ",");
95- if (!ParamValidation::instance()->CheckSocPmuEventsValid(eventType, eventsList)) {
96- MSPROF_LOGE("Failed to check soc pmu events, type: %u, event: %s", static_cast<uint32_t>(eventType),
97- registerList[i].c_str());
98- CmdLog::CmdErrorLog("The npu-events[%s] is invalid or exceeds the specified length, "
99- "please check ERROR infomation in host plog.", params_->npuEvents.c_str());
100- return MSPROF_DAEMON_ERROR;
101- }
102- }
103- 
104- return MSPROF_DAEMON_OK;
105-}
106- 
107-int32_t InputParser::CheckMemServiceflow(const struct MsprofCmdInfo &cmdInfo) const
108-{
109- if (cmdInfo.args[ARGS_MEM_SERVICEFLOW] == nullptr) {
110- CmdLog::CmdErrorLog("Argument --sys-mem-serviceflow: expected one argument");
111- return MSPROF_DAEMON_ERROR;
112- }
113- std::string memServiceflow = std::string(cmdInfo.args[ARGS_MEM_SERVICEFLOW]);
114- if (memServiceflow.empty()) {
115- CmdLog::CmdErrorLog("Argument --sys-mem-serviceflow: expected one argument");
116- return MSPROF_DAEMON_ERROR;
117- }
118- params_->memServiceflow = memServiceflow;
119- return MSPROF_DAEMON_OK;
120-}
121- 
122void ArgsManager::AddLowPowerArgs()63void ArgsManager::AddLowPowerArgs()
123{64{
124 if (!Platform::instance()->CheckIfSupport(PLATFORM_SYS_DEVICE_LOW_POWER)) {65 if (!Platform::instance()->CheckIfSupport(PLATFORM_SYS_DEVICE_LOW_POWER)) {
@@ -136,17 +77,9 @@ void ArgsManager::AddStarsArgs()
136 if (!Platform::instance()->CheckIfSupport(PLATFORM_TASK_BLOCK)) {77 if (!Platform::instance()->CheckIfSupport(PLATFORM_TASK_BLOCK)) {
137 return;78 return;
138 }79 }
139- std::string task_block_ranges;80+ std::string taskBlockRanges = "'on', 'off'.";
140- if (ConfigManager::instance()->GetPlatformType() == PlatformType::CHIP_CLOUD_V3 ||
141- ConfigManager::instance()->GetPlatformType() == PlatformType::CHIP_CLOUD_V4 ||
142- ConfigManager::instance()->GetPlatformType() == PlatformType::CHIP_MDC_V2 ||
143- ConfigManager::instance()->GetPlatformType() == PlatformType::CHIP_MDC_LITE_V2) {
144- task_block_ranges = "'all', 'on', 'off'.";
145- } else {
146- task_block_ranges = "'all', 'off'.";
147- }
148 Args fftsBlockArgs = {"task-block", "Show task block profiling data, the default value is off."81 Args fftsBlockArgs = {"task-block", "Show task block profiling data, the default value is off."
149- "The possible parameters are " + task_block_ranges};82+ "The possible parameters are " + taskBlockRanges};
atomgit-botatomgit-bot
atomgit-botatomgit-bot7月2日

🟡 Medium Priority

变更将 AddStarsArgs 中的 task-block 帮助文本从平台相关的 'all', 'on', 'off' / 'all', 'off' 统一改为 'on', 'off',移除了 'all' 选项。但 ParamValidation::CheckTaskBlockValid(param_validation.cpp:1167-1174)仍保留了旧逻辑:在非 CHIP_CLOUD_V3/V4、CHIP_MDC_V2、CHIP_MDC_LITE_V2 平台上,'on' 会被拒绝并提示 "please use all to collect block data"。然而 'all' 也已被该函数的前置校验(行 1161-1165)拒绝。这导致在受影响平台上:帮助文本提示 'on' 可用,但实际传入 --task-block on 会报错,且错误信息引导用户使用同样无效的 'all'

受影响平台:除 CHIP_CLOUD_V3、CHIP_CLOUD_V4、CHIP_MDC_V2、CHIP_MDC_LITE_V2 之外的所有平台。

建议:应同步更新 CheckTaskBlockValid(param_validation.cpp:1167-1174),移除平台特定的 'on' 拒绝逻辑,使帮助文本与实际校验行为一致;或在 AddStarsArgs 中恢复平台相关的帮助文本。

likedislike
不准确?
atomgit-botatomgit-bot7月2日

🟡 Medium Priority

CheckTaskBlockValid(param_validation.cpp:1167-1174)在校验 task_block 值为 "on" 时,对非 CHIP_CLOUD_V3/V4、CHIP_MDC_V2、CHIP_MDC_LITE_V2 平台会拒绝并提示 "please use all to collect block data"。但该函数的行 1161-1165 已移除了对 "all" 的接受(仅允许 "on"/"off"),AddStarsArgs 也统一展示 'on', 'off'。因此在受影响的非云端/MDC 平台上,用户按帮助传入 --task-block on 会失败,且错误信息引导使用的 "all" 同样无效。

建议:同步更新 CheckTaskBlockValid(param_validation.cpp 行 1167-1174),移除平台特定的 'on' 拒绝逻辑;或在 AddStarsArgs 中恢复平台相关的帮助文本,确保帮助文本与实际校验行为一致。

likedislike
不准确?
150 argsList_.push_back(fftsBlockArgs);83 argsList_.push_back(fftsBlockArgs);
151}84}
152 85 
@@ -1461,16 +1461,16 @@ AppMode::AppMode(std::string preCheckParams, SHARED_PTR_ALIA<ProfileParams> para
1461{1461{
1462 whiteSet_ = {1462 whiteSet_ = {
1463 ARGS_OUTPUT, ARGS_STORAGE_LIMIT, ARGS_APPLICATION, ARGS_ENVIRONMENT, ARGS_DYNAMIC_PROF, ARGS_DYNAMIC_PROF_PID,1463 ARGS_OUTPUT, ARGS_STORAGE_LIMIT, ARGS_APPLICATION, ARGS_ENVIRONMENT, ARGS_DYNAMIC_PROF, ARGS_DYNAMIC_PROF_PID,
1464- ARGS_AIC_MODE, ARGS_AIC_METRICS, ARGS_AIV_MODE, ARGS_AIV_METRICS, ARGS_NPU_EVENTS, ARGS_LLC_PROFILING,1464+ ARGS_AIC_MODE, ARGS_AIC_METRICS, ARGS_AIV_MODE, ARGS_AIV_METRICS, ARGS_LLC_PROFILING,
1465 ARGS_ASCENDCL, ARGS_AI_CORE, ARGS_AIV, ARGS_MODEL_EXECUTION, ARGS_TASK_MEMORY,1465 ARGS_ASCENDCL, ARGS_AI_CORE, ARGS_AIV, ARGS_MODEL_EXECUTION, ARGS_TASK_MEMORY,
1466- ARGS_RUNTIME_API, ARGS_TASK_TSFW, ARGS_TASK_TIME, ARGS_GE_API, ARGS_TASK_TRACE, ARGS_AICPU,1466+ ARGS_RUNTIME_API, ARGS_TASK_TIME, ARGS_GE_API, ARGS_TASK_TRACE, ARGS_AICPU,
1467 ARGS_CPU_PROFILING, ARGS_SYS_PROFILING, ARGS_PID_PROFILING, ARGS_HARDWARE_MEM, ARGS_IO_PROFILING,1467 ARGS_CPU_PROFILING, ARGS_SYS_PROFILING, ARGS_PID_PROFILING, ARGS_HARDWARE_MEM, ARGS_IO_PROFILING,
1468 ARGS_INTERCONNECTION_PROFILING, ARGS_DVPP_PROFILING, ARGS_TASK_BLOCK, ARGS_L2_PROFILING, ARGS_AIC_FREQ,1468 ARGS_INTERCONNECTION_PROFILING, ARGS_DVPP_PROFILING, ARGS_TASK_BLOCK, ARGS_L2_PROFILING, ARGS_AIC_FREQ,
1469 ARGS_AIV_FREQ, ARGS_INSTR_PROFILING_FREQ, ARGS_INSTR_PROFILING, ARGS_HCCL,1469 ARGS_AIV_FREQ, ARGS_INSTR_PROFILING_FREQ, ARGS_INSTR_PROFILING, ARGS_HCCL,
1470#ifndef BUILD_OPEN_PROJECT1470#ifndef BUILD_OPEN_PROJECT
1471 ARGS_SYS_LOW_POWER, ARGS_SYS_LOW_POWER_FREQ,1471 ARGS_SYS_LOW_POWER, ARGS_SYS_LOW_POWER_FREQ,
1472#endif // BUILD_OPEN_PROJECT1472#endif // BUILD_OPEN_PROJECT
1473- ARGS_SYS_SAMPLING_FREQ, ARGS_PID_SAMPLING_FREQ, ARGS_HARDWARE_MEM_SAMPLING_FREQ, ARGS_MEM_SERVICEFLOW,1473+ ARGS_SYS_SAMPLING_FREQ, ARGS_PID_SAMPLING_FREQ, ARGS_HARDWARE_MEM_SAMPLING_FREQ,
1474 ARGS_IO_SAMPLING_FREQ, ARGS_DVPP_FREQ, ARGS_CPU_SAMPLING_FREQ, ARGS_INTERCONNECTION_FREQ,1474 ARGS_IO_SAMPLING_FREQ, ARGS_DVPP_FREQ, ARGS_CPU_SAMPLING_FREQ, ARGS_INTERCONNECTION_FREQ,
1475 ARGS_HOST_SYS, ARGS_PYTHON_PATH, ARGS_MSPROFTX, ARGS_DELAY_PROF, ARGS_DURATION_PROF, ARGS_OPTYPE,1475 ARGS_HOST_SYS, ARGS_PYTHON_PATH, ARGS_MSPROFTX, ARGS_DELAY_PROF, ARGS_DURATION_PROF, ARGS_OPTYPE,
1476 ARGS_EXPORT_TYPE, ARGS_MSTX_DOMAIN_INCLUDE, ARGS_MSTX_DOMAIN_EXCLUDE1476 ARGS_EXPORT_TYPE, ARGS_MSTX_DOMAIN_INCLUDE, ARGS_MSTX_DOMAIN_EXCLUDE
@@ -1570,7 +1570,6 @@ SystemMode::SystemMode(std::string preCheckParams, SHARED_PTR_ALIA<ProfileParams
1570 ARGS_HARDWARE_MEM_SAMPLING_FREQ, ARGS_IO_SAMPLING_FREQ, ARGS_DVPP_FREQ,1570 ARGS_HARDWARE_MEM_SAMPLING_FREQ, ARGS_IO_SAMPLING_FREQ, ARGS_DVPP_FREQ,
1571 ARGS_CPU_SAMPLING_FREQ, ARGS_INTERCONNECTION_FREQ, ARGS_HOST_SYS, ARGS_SYS_PERIOD,1571 ARGS_CPU_SAMPLING_FREQ, ARGS_INTERCONNECTION_FREQ, ARGS_HOST_SYS, ARGS_SYS_PERIOD,
1572 ARGS_HOST_SYS_PID, ARGS_HOST_SYS_USAGE, ARGS_HOST_SYS_USAGE_FREQ, ARGS_PYTHON_PATH,1572 ARGS_HOST_SYS_PID, ARGS_HOST_SYS_USAGE, ARGS_HOST_SYS_USAGE_FREQ, ARGS_PYTHON_PATH,
1573- ARGS_MEM_SERVICEFLOW
1574 };1573 };
1575 neccessarySet_ = { ARGS_OUTPUT, ARGS_SYS_PERIOD };1574 neccessarySet_ = { ARGS_OUTPUT, ARGS_SYS_PERIOD };
1576}1575}
@@ -168,9 +168,6 @@ ACL_GRPH_PROF_CONFIG_PTR aclgrphProfCreateConfig(UINT32_T_PTR deviceidList, uint
168 if ((dataTypeConfig & PROF_TASK_TIME_L2_MASK) != 0 || (dataTypeConfig & PROF_OP_ATTR_MASK) != 0) {168 if ((dataTypeConfig & PROF_TASK_TIME_L2_MASK) != 0 || (dataTypeConfig & PROF_OP_ATTR_MASK) != 0) {
zhangjie
zhangjiezhangjie7月6日

移除了 PROF_TASK_TIME_L3_MASK 的处理逻辑(将 L3 升级为 L0+L1+L2),但 PLATFORM_TASK_TRACE_L3 仅从 CloudV2Platform 移除,其他平台仍可能支持 L3。如果其他平台仍使用 L3,该移除将导致 L3 请求不再自动包含低级别数据,是潜在回归。

likedislike
169 config->config.dataTypeConfig |= PROF_TASK_TIME | PROF_TASK_TIME_L1;169 config->config.dataTypeConfig |= PROF_TASK_TIME | PROF_TASK_TIME_L1;
170 }170 }
171- if ((dataTypeConfig & PROF_TASK_TIME_L3_MASK) != 0) {
172- config->config.dataTypeConfig |= PROF_TASK_TIME | PROF_TASK_TIME_L1 | PROF_TASK_TIME_L2;
173- }
174 config->config.devIdList[config->config.devNums] = DEFAULT_HOST_ID;171 config->config.devIdList[config->config.devNums] = DEFAULT_HOST_ID;
175 config->config.devNums++;172 config->config.devNums++;
176 config->config.aicoreMetrics = static_cast<ProfAicoreMetrics>(aicoreMetrics);173 config->config.aicoreMetrics = static_cast<ProfAicoreMetrics>(aicoreMetrics);
@@ -145,7 +145,7 @@ bool ProfAicpuJob::CheckMC2Switch(void)
145 // MC2 check prof_level >= L1 (L1 or L2)145 // MC2 check prof_level >= L1 (L1 or L2)
146 if (Platform::instance()->CheckIfSupport(PLATFORM_MC2) &&146 if (Platform::instance()->CheckIfSupport(PLATFORM_MC2) &&
147 ((collectionJobCfg_->comParams->params->prof_level.compare(MSVP_LEVEL_L1) == 0) ||147 ((collectionJobCfg_->comParams->params->prof_level.compare(MSVP_LEVEL_L1) == 0) ||
148- (collectionJobCfg_->comParams->params->prof_level.compare(MSVP_LEVEL_L2) == 0) ||148+ (collectionJobCfg_->comParams->params->prof_level.compare(MSVP_LEVEL_L2) == 0) ||
atomgit-bot
atomgit-botatomgit-bot7月2日

🟡 Medium Priority

变更行:prof_aicpu_job.cpp:148-149CheckMC2Switch() 中移除了 MSVP_LEVEL_L3 的检查。但 MSVP_LEVEL_L3("level3")在 config.h:198 仍然定义,AddProfLevelConfprof_acl_mgr.cpp:905-908)仍然通过 PROF_TASK_TIME_L3_MASK 设置 L3 级别,ChangeLevelConfprof_acl_mgr.cpp:913-914)仍然将 MSVP_PROF_L3 映射到 MSVP_LEVEL_L3。在支持 L3 的平台(如 David)上,若用户选择 L3 级别,MC2 将不会被启用——而本次变更前是启用的。这是一个行为不一致的回归。

建议:若 L3 功能确实保留,应恢复 L3 检查行。若 L3 已被整体废弃,应同步清理 AddProfLevelConfChangeLevelConf 中的 L3 逻辑及 MSVP_LEVEL_L3/MSVP_PROF_L3 常量。

likedislike
不准确?
149 (collectionJobCfg_->comParams->params->prof_level.compare(MSVP_LEVEL_L3) == 0))) {149 (collectionJobCfg_->comParams->params->prof_level.compare(MSVP_LEVEL_L3) == 0))) {
150 return true;150 return true;
151 }151 }
@@ -31,7 +31,6 @@ CloudPlatform::CloudPlatform()
31 PLATFORM_TASK_RUNTIME_API,31 PLATFORM_TASK_RUNTIME_API,
32 PLATFORM_TASK_SWITCH,32 PLATFORM_TASK_SWITCH,
33 PLATFORM_TASK_TRACE,33 PLATFORM_TASK_TRACE,
34- PLATFORM_TASK_TSFW,
35 PLATFORM_TASK_TS_MEMCPY,34 PLATFORM_TASK_TS_MEMCPY,
36 PLATFORM_TASK_TS_KEYPOINT,35 PLATFORM_TASK_TS_KEYPOINT,
37 PLATFORM_TASK_TRAINING_TRACE,36 PLATFORM_TASK_TRAINING_TRACE,
@@ -27,17 +27,14 @@ CloudV2Platform::CloudV2Platform()
27 PLATFORM_TASK_AICORE_LPM_INFO,27 PLATFORM_TASK_AICORE_LPM_INFO,
zhangjie
zhangjiezhangjie7月6日

CloudV2Platform 移除了 PLATFORM_TASK_BLOCK 和 PLATFORM_TASK_TRACE_L3。这是功能退化,CloudV2 平台不再支持 task_block 采集和 L3 级别 trace。需确认这是有意决策而非遗漏。

likedislike
28 PLATFORM_TASK_GE_API,28 PLATFORM_TASK_GE_API,
29 PLATFORM_TASK_HCCL,29 PLATFORM_TASK_HCCL,
30- PLATFORM_TASK_TSFW,
31 PLATFORM_TASK_L2_CACHE_REG,30 PLATFORM_TASK_L2_CACHE_REG,
32 PLATFORM_TASK_MEMORY,31 PLATFORM_TASK_MEMORY,
33- PLATFORM_TASK_MSPROFTX,
34 PLATFORM_TASK_SWITCH,32 PLATFORM_TASK_SWITCH,
33+ PLATFORM_TASK_MSPROFTX,
35 PLATFORM_TASK_TRACE,34 PLATFORM_TASK_TRACE,
36- PLATFORM_TASK_TRACE_L3,
37 PLATFORM_TASK_STARS_ACSQ,35 PLATFORM_TASK_STARS_ACSQ,
38 PLATFORM_TASK_TS_KEYPOINT,36 PLATFORM_TASK_TS_KEYPOINT,
39 PLATFORM_TASK_TS_MEMCPY,37 PLATFORM_TASK_TS_MEMCPY,
40- PLATFORM_TASK_BLOCK,
41 PLATFORM_TASK_TRAINING_TRACE,38 PLATFORM_TASK_TRAINING_TRACE,
42 PLATFORM_TASK_AICPU,39 PLATFORM_TASK_AICPU,
43 PLATFORM_TASK_DYNAMIC,40 PLATFORM_TASK_DYNAMIC,
@@ -84,7 +81,6 @@ CloudV2Platform::CloudV2Platform()
84 PLATFORM_DIAGNOSTIC_COLLECTION,81 PLATFORM_DIAGNOSTIC_COLLECTION,
85 PLATFORM_MC2,82 PLATFORM_MC2,
86 PLATFORM_AICPU_HCCL,83 PLATFORM_AICPU_HCCL,
87- PLATFORM_SYS_MEM_SERVICEFLOW,
88 PLATFORM_AICSCALE_ACP,84 PLATFORM_AICSCALE_ACP,
89 PLATFORM_ACLAPI_SETDEVICE_ENABLE,85 PLATFORM_ACLAPI_SETDEVICE_ENABLE,
90 PLATFORM_API_STATS86 PLATFORM_API_STATS
@@ -36,7 +36,6 @@ DavidPlatform::DavidPlatform()
36 PLATFORM_TASK_AICORE_LPM,36 PLATFORM_TASK_AICORE_LPM,
37 PLATFORM_TASK_GE_API,37 PLATFORM_TASK_GE_API,
38 PLATFORM_TASK_HCCL,38 PLATFORM_TASK_HCCL,
39- PLATFORM_TASK_TSFW,
40 PLATFORM_TASK_L2_CACHE_REG,39 PLATFORM_TASK_L2_CACHE_REG,
41 PLATFORM_TASK_MEMORY,40 PLATFORM_TASK_MEMORY,
42 PLATFORM_TASK_MSPROFTX,41 PLATFORM_TASK_MSPROFTX,
@@ -64,7 +63,6 @@ DavidPlatform::DavidPlatform()
64 PLATFORM_DIAGNOSTIC_COLLECTION,63 PLATFORM_DIAGNOSTIC_COLLECTION,
65 PLATFORM_AICSCALE_ACP,64 PLATFORM_AICSCALE_ACP,
66 PLATFORM_STARS_QOS,65 PLATFORM_STARS_QOS,
67- PLATFORM_SYS_MEM_SERVICEFLOW,
68 PLATFORM_ACLAPI_SETDEVICE_ENABLE,66 PLATFORM_ACLAPI_SETDEVICE_ENABLE,
69 PLATFORM_API_STATS67 PLATFORM_API_STATS
70 };68 };
@@ -36,9 +36,8 @@ DavidV121Platform::DavidV121Platform()
36 PLATFORM_TASK_AICORE_LPM,36 PLATFORM_TASK_AICORE_LPM,
37 PLATFORM_TASK_GE_API,37 PLATFORM_TASK_GE_API,
38 PLATFORM_TASK_HCCL,38 PLATFORM_TASK_HCCL,
39- PLATFORM_TASK_TSFW,
40- PLATFORM_TASK_L2_CACHE_REG,
41 PLATFORM_TASK_MEMORY,39 PLATFORM_TASK_MEMORY,
40+ PLATFORM_TASK_L2_CACHE_REG,
42 PLATFORM_TASK_MSPROFTX,41 PLATFORM_TASK_MSPROFTX,
43 PLATFORM_TASK_SWITCH,42 PLATFORM_TASK_SWITCH,
44 PLATFORM_TASK_TRACE,43 PLATFORM_TASK_TRACE,
@@ -61,7 +60,6 @@ DavidV121Platform::DavidV121Platform()
61 PLATFORM_DIAGNOSTIC_COLLECTION,60 PLATFORM_DIAGNOSTIC_COLLECTION,
62 PLATFORM_AICSCALE_ACP,61 PLATFORM_AICSCALE_ACP,
63 PLATFORM_STARS_QOS,62 PLATFORM_STARS_QOS,
64- PLATFORM_SYS_MEM_SERVICEFLOW,
65 PLATFORM_API_STATS63 PLATFORM_API_STATS
66 };64 };
67 InsertPmuFeature();65 InsertPmuFeature();
@@ -180,4 +178,4 @@ std::string DavidV121Platform::GetL2CacheEvents()
180}178}
181}179}
182}180}
183-}181+}
@@ -29,7 +29,6 @@ DcPlatform::DcPlatform()
29 PLATFORM_TASK_RUNTIME_API,29 PLATFORM_TASK_RUNTIME_API,
30 PLATFORM_TASK_SWITCH,30 PLATFORM_TASK_SWITCH,
31 PLATFORM_TASK_TRACE,31 PLATFORM_TASK_TRACE,
32- PLATFORM_TASK_TSFW,
33 PLATFORM_TASK_TS_MEMCPY,32 PLATFORM_TASK_TS_MEMCPY,
34 PLATFORM_TASK_TS_KEYPOINT,33 PLATFORM_TASK_TS_KEYPOINT,
35 PLATFORM_TASK_TRAINING_TRACE,34 PLATFORM_TASK_TRAINING_TRACE,
@@ -32,10 +32,9 @@ MdcLitePlatform::MdcLitePlatform()
32 PLATFORM_TASK_HCCL,32 PLATFORM_TASK_HCCL,
33 PLATFORM_TASK_L2_CACHE_REG,33 PLATFORM_TASK_L2_CACHE_REG,
34 PLATFORM_TASK_MSPROFTX,34 PLATFORM_TASK_MSPROFTX,
35- PLATFORM_TASK_RUNTIME_API,
36 PLATFORM_TASK_SWITCH,35 PLATFORM_TASK_SWITCH,
36+ PLATFORM_TASK_RUNTIME_API,
37 PLATFORM_TASK_TRACE,37 PLATFORM_TASK_TRACE,
38- PLATFORM_TASK_TSFW,
39 PLATFORM_TASK_TS_MEMCPY,38 PLATFORM_TASK_TS_MEMCPY,
40 PLATFORM_TASK_TS_KEYPOINT,39 PLATFORM_TASK_TS_KEYPOINT,
41 PLATFORM_TASK_TRAINING_TRACE,40 PLATFORM_TASK_TRAINING_TRACE,
@@ -34,14 +34,13 @@ MdcLiteV2Platform::MdcLiteV2Platform()
34 PLATFORM_TASK_AIC_METRICS,34 PLATFORM_TASK_AIC_METRICS,
35 PLATFORM_TASK_GE_API,35 PLATFORM_TASK_GE_API,
36 PLATFORM_TASK_HCCL,36 PLATFORM_TASK_HCCL,
37- PLATFORM_TASK_TSFW,
38 PLATFORM_TASK_L2_CACHE_REG,37 PLATFORM_TASK_L2_CACHE_REG,
39 PLATFORM_TASK_MEMORY,38 PLATFORM_TASK_MEMORY,
40 PLATFORM_TASK_MSPROFTX,39 PLATFORM_TASK_MSPROFTX,
41 PLATFORM_TASK_SWITCH,40 PLATFORM_TASK_SWITCH,
42 PLATFORM_TASK_TRACE,41 PLATFORM_TASK_TRACE,
43- PLATFORM_TASK_STARS_ACSQ,
44 PLATFORM_TASK_TS_KEYPOINT,42 PLATFORM_TASK_TS_KEYPOINT,
43+ PLATFORM_TASK_STARS_ACSQ,
45 PLATFORM_TASK_TS_MEMCPY,44 PLATFORM_TASK_TS_MEMCPY,
46 PLATFORM_TASK_TRAINING_TRACE,45 PLATFORM_TASK_TRAINING_TRACE,
47 PLATFORM_TASK_AICPU,46 PLATFORM_TASK_AICPU,
@@ -55,15 +54,14 @@ MdcLiteV2Platform::MdcLiteV2Platform()
55 PLATFORM_TASK_MEMORY_PMU,54 PLATFORM_TASK_MEMORY_PMU,
56 PLATFORM_TASK_MEMORYUB_PMU,55 PLATFORM_TASK_MEMORYUB_PMU,
57 PLATFORM_TASK_L2_CACHE_PMU,56 PLATFORM_TASK_L2_CACHE_PMU,
58- PLATFORM_TASK_RCR_PMU,
59 PLATFORM_TASK_SOC_PMU,57 PLATFORM_TASK_SOC_PMU,
58+ PLATFORM_TASK_RCR_PMU,
60 // Device59 // Device
61 PLATFORM_SYS_DEVICE_US,60 PLATFORM_SYS_DEVICE_US,
62 // Feature61 // Feature
63- PLATFORM_MC2,
64 PLATFORM_AICPU_HCCL,62 PLATFORM_AICPU_HCCL,
63+ PLATFORM_MC2,
65 PLATFORM_DIAGNOSTIC_COLLECTION,64 PLATFORM_DIAGNOSTIC_COLLECTION,
66- PLATFORM_SYS_MEM_SERVICEFLOW,
67 PLATFORM_STARS_QOS,65 PLATFORM_STARS_QOS,
68 PLATFORM_ACLAPI_SETDEVICE_ENABLE66 PLATFORM_ACLAPI_SETDEVICE_ENABLE
69 };67 };
@@ -142,4 +140,4 @@ void MdcLiteV2Platform::InsertSysFeature()
142}140}
143}141}
144}142}
145-}143+}
@@ -30,7 +30,6 @@ MdcPlatform::MdcPlatform()
30 PLATFORM_TASK_RUNTIME_API,30 PLATFORM_TASK_RUNTIME_API,
31 PLATFORM_TASK_SWITCH,31 PLATFORM_TASK_SWITCH,
32 PLATFORM_TASK_TRACE,32 PLATFORM_TASK_TRACE,
33- PLATFORM_TASK_TSFW,
34 PLATFORM_TASK_TS_MEMCPY,33 PLATFORM_TASK_TS_MEMCPY,
35 PLATFORM_TASK_TS_KEYPOINT,34 PLATFORM_TASK_TS_KEYPOINT,
36 PLATFORM_TASK_TRAINING_TRACE,35 PLATFORM_TASK_TRAINING_TRACE,
@@ -33,9 +33,8 @@ MdcV2Platform::MdcV2Platform()
33 PLATFORM_TASK_METRICS,33 PLATFORM_TASK_METRICS,
34 PLATFORM_TASK_AIV_METRICS,34 PLATFORM_TASK_AIV_METRICS,
35 PLATFORM_TASK_AIC_METRICS,35 PLATFORM_TASK_AIC_METRICS,
36- PLATFORM_TASK_GE_API,
37 PLATFORM_TASK_HCCL,36 PLATFORM_TASK_HCCL,
38- PLATFORM_TASK_TSFW,37+ PLATFORM_TASK_GE_API,
39 PLATFORM_TASK_L2_CACHE_REG,38 PLATFORM_TASK_L2_CACHE_REG,
40 PLATFORM_TASK_MEMORY,39 PLATFORM_TASK_MEMORY,
41 PLATFORM_TASK_MSPROFTX,40 PLATFORM_TASK_MSPROFTX,
@@ -67,7 +66,6 @@ MdcV2Platform::MdcV2Platform()
67 PLATFORM_MC2,66 PLATFORM_MC2,
68 PLATFORM_AICPU_HCCL,67 PLATFORM_AICPU_HCCL,
69 PLATFORM_DIAGNOSTIC_COLLECTION,68 PLATFORM_DIAGNOSTIC_COLLECTION,
70- PLATFORM_SYS_MEM_SERVICEFLOW,
71 PLATFORM_STARS_QOS,69 PLATFORM_STARS_QOS,
72 PLATFORM_ACLAPI_SETDEVICE_ENABLE70 PLATFORM_ACLAPI_SETDEVICE_ENABLE
73 };71 };
@@ -26,7 +26,6 @@ MiniPlatform::MiniPlatform()
26 PLATFORM_TASK_RUNTIME_API,26 PLATFORM_TASK_RUNTIME_API,
27 PLATFORM_TASK_SWITCH,27 PLATFORM_TASK_SWITCH,
28 PLATFORM_TASK_TRACE,28 PLATFORM_TASK_TRACE,
29- PLATFORM_TASK_TSFW,
30 PLATFORM_TASK_TS_MEMCPY,29 PLATFORM_TASK_TS_MEMCPY,
31 PLATFORM_TASK_TS_KEYPOINT,30 PLATFORM_TASK_TS_KEYPOINT,
32 PLATFORM_TASK_TRAINING_TRACE,31 PLATFORM_TASK_TRAINING_TRACE,
@@ -44,7 +44,6 @@ MiniV3Platform::MiniV3Platform()
44 PLATFORM_TASK_GE_API,44 PLATFORM_TASK_GE_API,
45 PLATFORM_TASK_TRACE,45 PLATFORM_TASK_TRACE,
46 PLATFORM_TASK_MSPROFTX,46 PLATFORM_TASK_MSPROFTX,
47- PLATFORM_TASK_TSFW,
48 PLATFORM_TASK_RUNTIME_API,47 PLATFORM_TASK_RUNTIME_API,
49 PLATFORM_TASK_BLOCK,48 PLATFORM_TASK_BLOCK,
50 PLATFORM_TASK_METRICS,49 PLATFORM_TASK_METRICS,
@@ -37,16 +37,16 @@ std::string PlatformInterface::GetAivDefaultFreq()
37 37 
zhangjie
zhangjiezhangjie7月6日

GetAiPmuMetrics 函数引入了行尾多余空格(多处行尾多了空格字符)。虽然不影响功能,但不符合代码规范,建议清理。

likedislike
38int32_t PlatformInterface::GetAiPmuMetrics(const std::string &key, std::string &vaule)38int32_t PlatformInterface::GetAiPmuMetrics(const std::string &key, std::string &vaule)
39{39{
40- if (key.compare(0, CUSTOM_METRICS.length(), CUSTOM_METRICS) == 0) {40+ if (key.compare(0, CUSTOM_METRICS.length(), CUSTOM_METRICS) == 0) {
41- std::string aicoreEvent = key.substr(CUSTOM_METRICS.length());41+ std::string aicoreEvent = key.substr(CUSTOM_METRICS.length());
42- std::transform(aicoreEvent.begin(), aicoreEvent.end(), aicoreEvent.begin(), ::tolower);42+ std::transform(aicoreEvent.begin(), aicoreEvent.end(), aicoreEvent.begin(), ::tolower);
43- int32_t sw = ParamValidation::instance()->CustomHexCharConfig(aicoreEvent, ",");43+ int32_t sw = ParamValidation::instance()->CustomHexCharConfig(aicoreEvent, ",");
44- if (sw == PROFILING_FAILED) {44+ if (sw == PROFILING_FAILED) {
45- MSPROF_LOGE("The aic_metrics[%s] of input config is invalid", key.c_str());45+ MSPROF_LOGE("The aic_metrics[%s] of input config is invalid", key.c_str());
46- return PROFILING_FAILED;46+ return PROFILING_FAILED;
47- }47+ }
48- vaule = aicoreEvent;48+ vaule = aicoreEvent;
49- return PROFILING_SUCCESS;49+ return PROFILING_SUCCESS;
50 }50 }
51 51 
52 const PlatformFeature feature = PmuMetricsToFeature(key);52 const PlatformFeature feature = PmuMetricsToFeature(key);
@@ -104,7 +104,6 @@ enum PlatformFeature {
104 PLATFORM_TASK_TRACE,104 PLATFORM_TASK_TRACE,
105 PLATFORM_TASK_TRACE_L3,105 PLATFORM_TASK_TRACE_L3,
106 PLATFORM_TASK_MSPROFTX,106 PLATFORM_TASK_MSPROFTX,
107- PLATFORM_TASK_TSFW,
108 PLATFORM_TASK_RUNTIME_API,107 PLATFORM_TASK_RUNTIME_API,
109 PLATFORM_TASK_BLOCK,108 PLATFORM_TASK_BLOCK,
110 PLATFORM_TASK_METRICS,109 PLATFORM_TASK_METRICS,
@@ -153,7 +152,6 @@ enum PlatformFeature {
153 PLATFORM_AOE_SUPPORT_FUNC,152 PLATFORM_AOE_SUPPORT_FUNC,
154 PLATFORM_AICSCALE_ACP,153 PLATFORM_AICSCALE_ACP,
155 PLATFORM_STARS_QOS,154 PLATFORM_STARS_QOS,
156- PLATFORM_SYS_MEM_SERVICEFLOW,
157 PLATFORM_MC2,155 PLATFORM_MC2,
158 PLATFORM_AICPU_HCCL,156 PLATFORM_AICPU_HCCL,
159 PLATFORM_ACLAPI_SETDEVICE_ENABLE,157 PLATFORM_ACLAPI_SETDEVICE_ENABLE,
@@ -195,7 +193,6 @@ const std::map<std::string, std::vector<PlatformFeature>> PLATFORM_FEATURE_MAP =
195 {"hccl", {PLATFORM_TASK_HCCL}},193 {"hccl", {PLATFORM_TASK_HCCL}},
196 {"msproftx", {PLATFORM_TASK_MSPROFTX}},194 {"msproftx", {PLATFORM_TASK_MSPROFTX}},
197 {"instr_profiling", {PLATFORM_SYS_DEVICE_INSTR_PROFILING, PLATFORM_TASK_INSTR_PROFILING}},195 {"instr_profiling", {PLATFORM_SYS_DEVICE_INSTR_PROFILING, PLATFORM_TASK_INSTR_PROFILING}},
198- {"task_tsfw", {PLATFORM_TASK_TSFW}},
199 {"runtime_api", {PLATFORM_TASK_RUNTIME_API}},196 {"runtime_api", {PLATFORM_TASK_RUNTIME_API}},
200 {"ascendcl", {PLATFORM_TASK_ASCENDCL}},197 {"ascendcl", {PLATFORM_TASK_ASCENDCL}},
201 {"task_block", {PLATFORM_TASK_BLOCK}},198 {"task_block", {PLATFORM_TASK_BLOCK}},
@@ -204,7 +201,6 @@ const std::map<std::string, std::vector<PlatformFeature>> PLATFORM_FEATURE_MAP =
204 {"training_trace", {PLATFORM_TASK_TRAINING_TRACE}},201 {"training_trace", {PLATFORM_TASK_TRAINING_TRACE}},
205 {"sys_hardware_mem_freq", {PLATFORM_SYS_DEVICE_NPU_MODULE_MEM, PLATFORM_SYS_DEVICE_LLC,202 {"sys_hardware_mem_freq", {PLATFORM_SYS_DEVICE_NPU_MODULE_MEM, PLATFORM_SYS_DEVICE_LLC,
206 PLATFORM_SYS_DEVICE_DDR, PLATFORM_SYS_DEVICE_HBM}},203 PLATFORM_SYS_DEVICE_DDR, PLATFORM_SYS_DEVICE_HBM}},
207- {"sys_mem_serviceflow", {PLATFORM_SYS_MEM_SERVICEFLOW}},
208 {"llc_profiling", {PLATFORM_SYS_DEVICE_LLC}},204 {"llc_profiling", {PLATFORM_SYS_DEVICE_LLC}},
209 {"sys_io_sampling_freq", {PLATFORM_SYS_DEVICE_NIC, PLATFORM_SYS_DEVICE_ROCE}},205 {"sys_io_sampling_freq", {PLATFORM_SYS_DEVICE_NIC, PLATFORM_SYS_DEVICE_ROCE}},
210 {"sys_interconnection_freq", {PLATFORM_SYS_DEVICE_PCIE, PLATFORM_SYS_DEVICE_HCCS}},206 {"sys_interconnection_freq", {PLATFORM_SYS_DEVICE_PCIE, PLATFORM_SYS_DEVICE_HCCS}},
@@ -372,9 +372,6 @@ SHARED_PTR_ALIA<analysis::dvvp::message::ProfileParams> ProfManager::ValidateAnd
372 Analysis::Dvvp::Host::Adapter::ProfParamsAdapter::instance()->GenerateLlcEvents(params);372 Analysis::Dvvp::Host::Adapter::ProfParamsAdapter::instance()->GenerateLlcEvents(params);
373 if (params->hardware_mem.compare(MSVP_PROF_ON) == 0 && deviceId != static_cast<uint32_t>(DEFAULT_HOST_ID)) {373 if (params->hardware_mem.compare(MSVP_PROF_ON) == 0 && deviceId != static_cast<uint32_t>(DEFAULT_HOST_ID)) {
374 params->qosProfiling = MSVP_PROF_ON;374 params->qosProfiling = MSVP_PROF_ON;
375- if (!params->memServiceflow.empty()) {
376- params->qosEvents = params->memServiceflow;
377- }
378 Platform::instance()->GetQosProfileInfo(deviceId, params->qosEvents, params->qosEventId);375 Platform::instance()->GetQosProfileInfo(deviceId, params->qosEvents, params->qosEventId);
379 if (!params->qosEvents.empty() && params->qosEventId.empty()) {376 if (!params->qosEvents.empty() && params->qosEventId.empty()) {
380 MSPROF_LOGE("Failed to get qosEventId.");377 MSPROF_LOGE("Failed to get qosEventId.");
@@ -92,8 +92,8 @@ void ProfParamsAdapter::StartCfgTrfToInnerParam(const uint64_t dataTypeConfig,
92 SHARED_PTR_ALIA<analysis::dvvp::message::ProfileParams> params) const92 SHARED_PTR_ALIA<analysis::dvvp::message::ProfileParams> params) const
zhangjie
zhangjiezhangjie7月6日

StartCfgTrfToInnerParam 中仍然设置 params->taskTsfw = "on",但 UpdateDataTypeConfigBySwitch(params->taskTsfw, PROF_TASK_TSFW) 已被移除,且 PLATFORM_TASK_TSFW 已从所有平台特性中删除。这是死代码,应一并清理以避免混淆。

likedislike
93{93{
94 MSPROF_LOGI("Begin to transfer msprof StartCfg to inner params");94 MSPROF_LOGI("Begin to transfer msprof StartCfg to inner params");
95- if ((dataTypeConfig & PROF_TASK_TSFW_MASK) != 0) {95+ if ((dataTypeConfig & PROF_TASK_TSFW_MASK) != 0) {
96- params->taskTsfw = "on";96+ params->taskTsfw = "on";
97 }97 }
98 if ((dataTypeConfig & PROF_TASK_TIME_MASK) != 0) {98 if ((dataTypeConfig & PROF_TASK_TIME_MASK) != 0) {
99 // ts_memcpy99 // ts_memcpy
@@ -144,8 +144,6 @@ bool ProfParamsAdapter::CheckJsonConfig(const std::string &switchName, const Nan
144 return CheckHostSysValid(val.GetValue<std::string>());144 return CheckHostSysValid(val.GetValue<std::string>());
145 } else if (switchName == "host_sys_usage") {145 } else if (switchName == "host_sys_usage") {
146 return CheckHostSysUsageValid(val.GetValue<std::string>());146 return CheckHostSysUsageValid(val.GetValue<std::string>());
147- } else if (switchName == "sys_mem_serviceflow") {
148- return ParamValidation::instance()->CheckMemServiceflowValid(switchName, val.GetValue<std::string>());
149 } else if (switchName == "task_block") {147 } else if (switchName == "task_block") {
150#ifndef BUILD_OPEN_PROJECT148#ifndef BUILD_OPEN_PROJECT
151 return ParamValidation::instance()->CheckTaskBlockValid(switchName, val.GetValue<std::string>());149 return ParamValidation::instance()->CheckTaskBlockValid(switchName, val.GetValue<std::string>());
@@ -214,7 +212,6 @@ int32_t ProfParamsAdapter::CheckApiConfigSupport(aclprofConfigType type) const
214 {ACL_PROF_HOST_SYS_USAGE, {PLATFORM_SYS_HOST_ALL_PID_CPU, PLATFORM_SYS_HOST_ALL_PID_MEM}},212 {ACL_PROF_HOST_SYS_USAGE, {PLATFORM_SYS_HOST_ALL_PID_CPU, PLATFORM_SYS_HOST_ALL_PID_MEM}},
215 {ACL_PROF_HOST_SYS_USAGE_FREQ, {PLATFORM_SYS_HOST_ALL_PID_CPU, PLATFORM_SYS_HOST_ALL_PID_MEM}},213 {ACL_PROF_HOST_SYS_USAGE_FREQ, {PLATFORM_SYS_HOST_ALL_PID_CPU, PLATFORM_SYS_HOST_ALL_PID_MEM}},
216 {ACL_PROF_LOW_POWER_FREQ, {PLATFORM_SYS_DEVICE_LOW_POWER}},214 {ACL_PROF_LOW_POWER_FREQ, {PLATFORM_SYS_DEVICE_LOW_POWER}},
217- {ACL_PROF_SYS_MEM_SERVICEFLOW, {PLATFORM_SYS_MEM_SERVICEFLOW}},
218 {ACL_PROF_OPTYPE, {PLATFORM_TASK_SCALE}},215 {ACL_PROF_OPTYPE, {PLATFORM_TASK_SCALE}},
219 {ACL_PROF_NTS_METRICS, {PLATFORM_TASK_NTS}}216 {ACL_PROF_NTS_METRICS, {PLATFORM_TASK_NTS}}
220 };217 };
@@ -292,12 +289,6 @@ int32_t ProfParamsAdapter::CheckApiConfigIsValid(SHARED_PTR_ALIA<analysis::dvvp:
292 return PROFILING_SUCCESS;289 return PROFILING_SUCCESS;
293 }290 }
294 break;291 break;
295- case ACL_PROF_SYS_MEM_SERVICEFLOW:
296- if (ParamValidation::instance()->CheckMemServiceflowValid("ACL_PROF_SYS_MEM_SERVICEFLOW", config)) {
297- params->memServiceflow = config;
298- return PROFILING_SUCCESS;
299- }
300- break;
301 case ACL_PROF_LLC_MODE:292 case ACL_PROF_LLC_MODE:
302 if (ParamValidation::instance()->CheckLlcConfigValid(config)) {293 if (ParamValidation::instance()->CheckLlcConfigValid(config)) {
303 params->llc_profiling = config;294 params->llc_profiling = config;
@@ -93,7 +93,6 @@ typedef enum {
93 ACL_PROF_HOST_SYS_USAGE = 9,93 ACL_PROF_HOST_SYS_USAGE = 9,
94 ACL_PROF_HOST_SYS_USAGE_FREQ = 10,94 ACL_PROF_HOST_SYS_USAGE_FREQ = 10,
95 ACL_PROF_LOW_POWER_FREQ = 11,95 ACL_PROF_LOW_POWER_FREQ = 11,
96- ACL_PROF_SYS_MEM_SERVICEFLOW = 12,
97 ACL_PROF_SYS_CPU_FREQ = 13,96 ACL_PROF_SYS_CPU_FREQ = 13,
98 ACL_PROF_OPTYPE = 14,97 ACL_PROF_OPTYPE = 14,
99 ACL_PROF_NTS_METRICS = 15,98 ACL_PROF_NTS_METRICS = 15,
@@ -755,4 +755,4 @@ MSVP_PROF_API bool MsprofCheckOpSwitch(uint32_t type, const char *op, size_t len
755#ifdef __cplusplus755#ifdef __cplusplus
756}756}
757#endif757#endif
758-#endif758+#endif
@@ -60,4 +60,4 @@
60// profSwitchHi config, upper 16 bits will be send to aicpu by runtime60// profSwitchHi config, upper 16 bits will be send to aicpu by runtime
61#define PROF_HI_AICPU_CHANNEL 0x1000000000000ULL // bit0 of the upper 16 bits means aicpu channel switch61#define PROF_HI_AICPU_CHANNEL 0x1000000000000ULL // bit0 of the upper 16 bits means aicpu channel switch
62 62 
63-#endif // MSPROFILER_API_PROF_DATA_CONFIG_H_63+#endif // MSPROFILER_API_PROF_DATA_CONFIG_H_
@@ -163,13 +163,6 @@ TEST_F(COMMON_VALIDATION_PARAM_VALIDATION_TEST, CheckSystemTraceSwitchProfiling)
163 EXPECT_EQ(true, entry->CheckSystemTraceSwitchProfiling(params));163 EXPECT_EQ(true, entry->CheckSystemTraceSwitchProfiling(params));
164}164}
165 165 
166-TEST_F(COMMON_VALIDATION_PARAM_VALIDATION_TEST, CheckControlSwitchProfiling) {
167- std::shared_ptr<analysis::dvvp::message::ProfileParams> params(new analysis::dvvp::message::ProfileParams());
168- auto entry = analysis::dvvp::common::validation::ParamValidation::instance();
169- params->taskTsfw = "asd";
170- EXPECT_EQ(true, entry->CheckControlSwitchProfiling(params));
171-}
172- 
173TEST_F(COMMON_VALIDATION_PARAM_VALIDATION_TEST, CheckTsSwitchProfiling) {166TEST_F(COMMON_VALIDATION_PARAM_VALIDATION_TEST, CheckTsSwitchProfiling) {
174 std::shared_ptr<analysis::dvvp::message::ProfileParams> params(new analysis::dvvp::message::ProfileParams());167 std::shared_ptr<analysis::dvvp::message::ProfileParams> params(new analysis::dvvp::message::ProfileParams());
175 auto entry = analysis::dvvp::common::validation::ParamValidation::instance();168 auto entry = analysis::dvvp::common::validation::ParamValidation::instance();
@@ -347,12 +340,6 @@ TEST_F(COMMON_VALIDATION_PARAM_VALIDATION_TEST, CheckAicoreMetricsIsValid) {
347 EXPECT_EQ(false, entry->CheckAicoreMetricsIsValid(aicoreMetrics));340 EXPECT_EQ(false, entry->CheckAicoreMetricsIsValid(aicoreMetrics));
zhangjie
zhangjiezhangjie7月6日

移除了 Custom aic_metrics 的测试用例(如 "Custom:0x500,0x502,..."),但 platform_interface.cpp 中 GetAiPmuMetrics 的 Custom metrics 处理代码仍然存在。这导致该功能路径失去测试覆盖,是测试缺口。

likedislike
348 aicoreMetrics = "trace";341 aicoreMetrics = "trace";
349 EXPECT_EQ(false, entry->CheckAicoreMetricsIsValid(aicoreMetrics));342 EXPECT_EQ(false, entry->CheckAicoreMetricsIsValid(aicoreMetrics));
350- aicoreMetrics = "Custom:0x0x0x0x00x0x0x0x00x0x0x0x00x0x0x0x00x0x0x0x00x0x0x0x00x0x0x0x0";
351- EXPECT_EQ(false, entry->CheckAicoreMetricsIsValid(aicoreMetrics));
352- aicoreMetrics = "Custom:0x500,0x502,0x504,0x506,0x508,0x50a,0xc,0xd";
353- EXPECT_EQ(true, entry->CheckAicoreMetricsIsValid(aicoreMetrics));
354- aicoreMetrics = "Custom:0x500,,0x504,0x506,0x508,0x50a,0xc,0xd";
355- EXPECT_EQ(false, entry->CheckAicoreMetricsIsValid(aicoreMetrics));
356 aicoreMetrics = "PipelineExecuteUtilization";343 aicoreMetrics = "PipelineExecuteUtilization";
357 EXPECT_EQ(false, entry->CheckAicoreMetricsIsValid(aicoreMetrics));344 EXPECT_EQ(false, entry->CheckAicoreMetricsIsValid(aicoreMetrics));
358}345}
@@ -274,7 +274,7 @@ TEST_F(COMMON_PLATFORM_TEST, MdcMiniV3PlatformTest) {
274 EXPECT_EQ(false, platform->CheckIfSupport(featureType));274 EXPECT_EQ(false, platform->CheckIfSupport(featureType));
275 275 
276 featureType = "task_tsfw";276 featureType = "task_tsfw";
277- EXPECT_EQ(true, platform->CheckIfSupport(featureType));277+ EXPECT_EQ(false, platform->CheckIfSupport(featureType));
278 278 
279 featureType = "task_framework";279 featureType = "task_framework";
280 EXPECT_EQ(false, platform->CheckIfSupport(featureType));280 EXPECT_EQ(false, platform->CheckIfSupport(featureType));
@@ -343,10 +343,9 @@ TEST_F(COMMON_PLATFORM_TEST, CloudV2PlatformTest) {
343 EXPECT_EQ(true, platform.FeatureIsSupport(PlatformFeature::PLATFORM_TASK_HCCL));343 EXPECT_EQ(true, platform.FeatureIsSupport(PlatformFeature::PLATFORM_TASK_HCCL));
344 EXPECT_EQ(true, platform.FeatureIsSupport(PlatformFeature::PLATFORM_TASK_MSPROFTX));344 EXPECT_EQ(true, platform.FeatureIsSupport(PlatformFeature::PLATFORM_TASK_MSPROFTX));
345 EXPECT_EQ(true, platform.FeatureIsSupport(PlatformFeature::PLATFORM_SYS_DEVICE_INSTR_PROFILING));345 EXPECT_EQ(true, platform.FeatureIsSupport(PlatformFeature::PLATFORM_SYS_DEVICE_INSTR_PROFILING));
346- EXPECT_EQ(true, platform.FeatureIsSupport(PlatformFeature::PLATFORM_TASK_TSFW));
347 EXPECT_EQ(true, platform.FeatureIsSupport(PlatformFeature::PLATFORM_TASK_RUNTIME_API));346 EXPECT_EQ(true, platform.FeatureIsSupport(PlatformFeature::PLATFORM_TASK_RUNTIME_API));
348 EXPECT_EQ(true, platform.FeatureIsSupport(PlatformFeature::PLATFORM_TASK_ASCENDCL));347 EXPECT_EQ(true, platform.FeatureIsSupport(PlatformFeature::PLATFORM_TASK_ASCENDCL));
349- EXPECT_EQ(true, platform.FeatureIsSupport(PlatformFeature::PLATFORM_TASK_BLOCK));348+ EXPECT_EQ(false, platform.FeatureIsSupport(PlatformFeature::PLATFORM_TASK_BLOCK));
350 EXPECT_EQ(false, platform.FeatureIsSupport(PlatformFeature::PLATFORM_SYS_DEVICE_LOW_POWER));349 EXPECT_EQ(false, platform.FeatureIsSupport(PlatformFeature::PLATFORM_SYS_DEVICE_LOW_POWER));
351 EXPECT_EQ(true, platform.FeatureIsSupport(PlatformFeature::PLATFORM_TASK_TRAINING_TRACE));350 EXPECT_EQ(true, platform.FeatureIsSupport(PlatformFeature::PLATFORM_TASK_TRAINING_TRACE));
352 351 
@@ -444,7 +443,6 @@ TEST_F(COMMON_PLATFORM_TEST, MiniPlatformTest) {
444 EXPECT_EQ(PROFILING_SUCCESS, platform.GetAiPmuMetrics("ResourceConflictRatio", aicEvent));443 EXPECT_EQ(PROFILING_SUCCESS, platform.GetAiPmuMetrics("ResourceConflictRatio", aicEvent));
445 EXPECT_EQ("0x64,0x65,0x66", aicEvent);444 EXPECT_EQ("0x64,0x65,0x66", aicEvent);
446 445 
447- EXPECT_EQ(PROFILING_SUCCESS, platform.GetAiPmuMetrics("Custom:0x500,0x502,0x504,0x506,0x508,0x50a,0xc,0xd", aicEvent));
448 EXPECT_EQ(PROFILING_FAILED, platform.GetAiPmuMetrics("PipeUtilizationExct", aicEvent));446 EXPECT_EQ(PROFILING_FAILED, platform.GetAiPmuMetrics("PipeUtilizationExct", aicEvent));
449 EXPECT_EQ(PROFILING_FAILED, platform.GetAiPmuMetrics("PipelineExecuteUtilization", aicEvent));447 EXPECT_EQ(PROFILING_FAILED, platform.GetAiPmuMetrics("PipelineExecuteUtilization", aicEvent));
450 EXPECT_EQ(PROFILING_FAILED, platform.GetAiPmuMetrics("PipeStallCycle", aicEvent));448 EXPECT_EQ(PROFILING_FAILED, platform.GetAiPmuMetrics("PipeStallCycle", aicEvent));
@@ -497,7 +495,6 @@ TEST_F(COMMON_PLATFORM_TEST, MdcPlatformTest) {
497 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_RUNTIME_API));495 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_RUNTIME_API));
498 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_SWITCH));496 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_SWITCH));
499 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_TRACE));497 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_TRACE));
500- EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_TSFW));
501 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_TS_MEMCPY));498 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_TS_MEMCPY));
502 EXPECT_EQ(false, platform.FeatureIsSupport(PLATFORM_TASK_BLOCK));499 EXPECT_EQ(false, platform.FeatureIsSupport(PLATFORM_TASK_BLOCK));
503 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_TS_KEYPOINT));500 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_TS_KEYPOINT));
@@ -566,7 +563,6 @@ TEST_F(COMMON_PLATFORM_TEST, TinyV1PlatformTest) {
566 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_GE_API));563 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_GE_API));
567 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_TRACE));564 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_TRACE));
568 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_MSPROFTX));565 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_MSPROFTX));
569- EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_TSFW));
570 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_RUNTIME_API));566 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_RUNTIME_API));
571 EXPECT_EQ(false, platform.FeatureIsSupport(PLATFORM_TASK_BLOCK));567 EXPECT_EQ(false, platform.FeatureIsSupport(PLATFORM_TASK_BLOCK));
572 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_METRICS));568 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_METRICS));
@@ -670,7 +666,7 @@ TEST_F(COMMON_PLATFORM_TEST, MdcLitePlatformTest) {
670 EXPECT_EQ(false, platform->CheckIfSupport(featureType));666 EXPECT_EQ(false, platform->CheckIfSupport(featureType));
671 667 
672 featureType = "task_tsfw";668 featureType = "task_tsfw";
673- EXPECT_EQ(true, platform->CheckIfSupport(featureType));669+ EXPECT_EQ(false, platform->CheckIfSupport(featureType));
674 670 
675 featureType = "task_framework";671 featureType = "task_framework";
676 EXPECT_EQ(false, platform->CheckIfSupport(featureType));672 EXPECT_EQ(false, platform->CheckIfSupport(featureType));
@@ -780,7 +776,7 @@ TEST_F(COMMON_PLATFORM_TEST, MiniV3PlatformTest) {
780 EXPECT_EQ(false, platform->CheckIfSupport(featureType));776 EXPECT_EQ(false, platform->CheckIfSupport(featureType));
781 777
782 featureType = "task_tsfw";778 featureType = "task_tsfw";
783- EXPECT_EQ(true, platform->CheckIfSupport(featureType));779+ EXPECT_EQ(false, platform->CheckIfSupport(featureType));
784 780
785 featureType = "task_framework";781 featureType = "task_framework";
786 EXPECT_EQ(false, platform->CheckIfSupport(featureType));782 EXPECT_EQ(false, platform->CheckIfSupport(featureType));
@@ -1093,4 +1089,4 @@ TEST_F(COMMON_PLATFORM_TEST, PlatformAnalyzerDavid) {
1093 EXPECT_EQ(nullptr, Platform::instance()->GetMetricsFunc(pmu, 0));1089 EXPECT_EQ(nullptr, Platform::instance()->GetMetricsFunc(pmu, 0));
1094 Platform::instance()->Uninit();1090 Platform::instance()->Uninit();
1095}1091}
1096-#endif1092+#endif
@@ -376,7 +376,6 @@ TEST_F(PLATFORM_UTEST, MdcLiteV2PlatformFeatures) {
376 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_INSTR_PROFILING));376 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_TASK_INSTR_PROFILING));
377 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_SYS_DEVICE_LOW_POWER));377 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_SYS_DEVICE_LOW_POWER));
378 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_SYS_DEVICE_QOS));378 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_SYS_DEVICE_QOS));
379- EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_SYS_MEM_SERVICEFLOW));
380 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_STARS_QOS));379 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_STARS_QOS));
381 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_MC2));380 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_MC2));
382 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_AICPU_HCCL));381 EXPECT_EQ(true, platform.FeatureIsSupport(PLATFORM_AICPU_HCCL));
@@ -1915,7 +1915,6 @@ TEST_F(MSPROF_ACL_CORE_UTEST, MsprofInitGeOptionsParamAdaper) {
1915 message["aicpu"] = "on";1915 message["aicpu"] = "on";
1916 message["training_trace"] = "on";1916 message["training_trace"] = "on";
1917 message["task_trace"] = "on";1917 message["task_trace"] = "on";
1918- message["task_tsfw"] = "on";
1919 std::string jobInfo = "123";1918 std::string jobInfo = "123";
1920 MOCKER_CPP(&Msprofiler::Api::ProfAclMgr::MsprofResultPathAdapter)1919 MOCKER_CPP(&Msprofiler::Api::ProfAclMgr::MsprofResultPathAdapter)
1921 .stubs()1920 .stubs()
@@ -1927,7 +1926,6 @@ TEST_F(MSPROF_ACL_CORE_UTEST, MsprofInitGeOptionsParamAdaper) {
1927 EXPECT_EQ("on", params->aicpuTrace);1926 EXPECT_EQ("on", params->aicpuTrace);
1928 EXPECT_EQ("on", params->ts_fw_training);1927 EXPECT_EQ("on", params->ts_fw_training);
1929 EXPECT_EQ("level1", params->prof_level);1928 EXPECT_EQ("level1", params->prof_level);
1930- EXPECT_EQ("on", params->taskTsfw);
1931 EXPECT_EQ(analysis::dvvp::common::utils::Utils::GetPid(), params->host_sys_pid);1929 EXPECT_EQ(analysis::dvvp::common::utils::Utils::GetPid(), params->host_sys_pid);
1932 1930 
1933 message["task_block"] = "on";1931 message["task_block"] = "on";
@@ -2008,22 +2006,6 @@ TEST_F(MSPROF_ACL_CORE_UTEST, MsprofInitGeOptions) {
2008 strcpy(options.jobId, "123");2006 strcpy(options.jobId, "123");
2009 strcpy(options.options, ge_json.c_str());2007 strcpy(options.options, ge_json.c_str());
2010 EXPECT_EQ(MSPROF_ERROR_CONFIG_INVALID, ProfAclMgr::instance()->MsprofInitGeOptions((void *)&options, sizeof(options)));2008 EXPECT_EQ(MSPROF_ERROR_CONFIG_INVALID, ProfAclMgr::instance()->MsprofInitGeOptions((void *)&options, sizeof(options)));
2011- ge_json = "{\"output\": \"/tmp/MsprofInitGeOptions\",\"aic_metrics\": \"Custom:0x500,0x502,0x504,0x506,0x508,0x50a,0xc,0xd\"}";
2012- strcpy(options.jobId, "123");
2013- strcpy(options.options, ge_json.c_str());
2014- EXPECT_EQ(MSPROF_ERROR_NONE, ProfAclMgr::instance()->MsprofInitGeOptions((void *)&options, sizeof(options)));
2015- ge_json = "{\"output\": \"/tmp/MsprofInitGeOptions\",\"aic_metrics\": \"Custom:0x500,0x502,0x504,0x506,0x508,0x50a,0xc,0xpp\"}";
2016- strcpy(options.jobId, "123");
2017- strcpy(options.options, ge_json.c_str());
2018- EXPECT_EQ(MSPROF_ERROR_CONFIG_INVALID, ProfAclMgr::instance()->MsprofInitGeOptions((void *)&options, sizeof(options)));
2019- ge_json = "{\"output\": \"/tmp/MsprofInitGeOptions\",\"aic_metrics\": \"Custom:0x500,0x502,0x504,0x506,0x508,0x50a,0xc,0x10,0x20\"}";
2020- strcpy(options.jobId, "123");
2021- strcpy(options.options, ge_json.c_str());
2022- EXPECT_EQ(MSPROF_ERROR_CONFIG_INVALID, ProfAclMgr::instance()->MsprofInitGeOptions((void *)&options, sizeof(options)));
2023- ge_json = "{\"output\": \"/tmp/MsprofInitGeOptions\",\"aic_metrics\": \"Custom:0x500,100,0x123,200\"}";
2024- strcpy(options.jobId, "123");
2025- strcpy(options.options, ge_json.c_str());
2026- EXPECT_EQ(MSPROF_ERROR_NONE, ProfAclMgr::instance()->MsprofInitGeOptions((void *)&options, sizeof(options)));
2027 ge_json = "{\"output\": \"/tmp/MsprofInitGeOptions\",\"task_trace\": \"on\",\"ge_api\": \"off\"}";2009 ge_json = "{\"output\": \"/tmp/MsprofInitGeOptions\",\"task_trace\": \"on\",\"ge_api\": \"off\"}";
2028 strcpy(options.jobId, "123");2010 strcpy(options.jobId, "123");
2029 strcpy(options.options, ge_json.c_str());2011 strcpy(options.options, ge_json.c_str());
@@ -4464,8 +4446,6 @@ TEST_F(MSPROF_ACL_CORE_UTEST, ProfSetConfigWillCheckConfigWhenPlatformSupported)
4464 EXPECT_EQ(ACL_SUCCESS, Msprofiler::AclApi::ProfSetConfig(configType, config.c_str(), config.size()));4446 EXPECT_EQ(ACL_SUCCESS, Msprofiler::AclApi::ProfSetConfig(configType, config.c_str(), config.size()));
4465 configType = ACL_PROF_SYS_INTERCONNECTION_FREQ;4447 configType = ACL_PROF_SYS_INTERCONNECTION_FREQ;
4466 EXPECT_EQ(ACL_SUCCESS, Msprofiler::AclApi::ProfSetConfig(configType, config.c_str(), config.size()));4448 EXPECT_EQ(ACL_SUCCESS, Msprofiler::AclApi::ProfSetConfig(configType, config.c_str(), config.size()));
4467- configType = ACL_PROF_SYS_MEM_SERVICEFLOW;
4468- EXPECT_EQ(ACL_SUCCESS, Msprofiler::AclApi::ProfSetConfig(configType, config.c_str(), config.size()));
4469 configType = ACL_PROF_HOST_SYS_USAGE_FREQ;4449 configType = ACL_PROF_HOST_SYS_USAGE_FREQ;
4470 EXPECT_EQ(ACL_SUCCESS, Msprofiler::AclApi::ProfSetConfig(configType, config.c_str(), config.size()));4450 EXPECT_EQ(ACL_SUCCESS, Msprofiler::AclApi::ProfSetConfig(configType, config.c_str(), config.size()));
4471 int expectRet = ACL_ERROR_INVALID_PROFILING_CONFIG;4451 int expectRet = ACL_ERROR_INVALID_PROFILING_CONFIG;
@@ -4685,7 +4665,6 @@ TEST_F(MSPROF_ACL_CORE_UTEST, MsprofSetConfigInvalidConfigReportsInputErrorForOp
4685 {ACL_PROF_LLC_MODE, "ACL_PROF_LLC_MODE", "'read' or 'write'"},4665 {ACL_PROF_LLC_MODE, "ACL_PROF_LLC_MODE", "'read' or 'write'"},
4686 {ACL_PROF_HOST_SYS, "ACL_PROF_HOST_SYS", "'cpu', 'mem', 'disk'"},4666 {ACL_PROF_HOST_SYS, "ACL_PROF_HOST_SYS", "'cpu', 'mem', 'disk'"},
4687 {ACL_PROF_HOST_SYS_USAGE, "ACL_PROF_HOST_SYS_USAGE", "'cpu' or 'mem'"},4667 {ACL_PROF_HOST_SYS_USAGE, "ACL_PROF_HOST_SYS_USAGE", "'cpu' or 'mem'"},
4688- {ACL_PROF_SYS_MEM_SERVICEFLOW, "ACL_PROF_SYS_MEM_SERVICEFLOW", "non-empty"},
4689 {ACL_PROF_OPTYPE, "ACL_PROF_OPTYPE", "total length should not exceed 256"},4668 {ACL_PROF_OPTYPE, "ACL_PROF_OPTYPE", "total length should not exceed 256"},
4690 {ACL_PROF_NTS_METRICS, "ACL_PROF_NTS_METRICS", "PipeUtilization"},4669 {ACL_PROF_NTS_METRICS, "ACL_PROF_NTS_METRICS", "PipeUtilization"},
4691 {ACL_PROF_PATH, "ACL_PROF_PATH", "valid profiling result path"},4670 {ACL_PROF_PATH, "ACL_PROF_PATH", "valid profiling result path"},
@@ -5904,7 +5883,6 @@ TEST_F(MSPROF_ACL_CORE_UTEST, ProfParamsAdapter_StartReqTrf_AllFields)
5904 auto a = NewAdapter();5883 auto a = NewAdapter();
5905 auto req = NewStartReq();5884 auto req = NewStartReq();
5906 auto p = NewParams();5885 auto p = NewParams();
5907- p->taskTsfw = "on";
5908 req->jobId = "j1";5886 req->jobId = "j1";
5909 req->tsFwTraining = "fw";5887 req->tsFwTraining = "fw";
5910 req->hwtsLog = "hwts";5888 req->hwtsLog = "hwts";
@@ -5926,9 +5904,6 @@ TEST_F(MSPROF_ACL_CORE_UTEST, ProfParamsAdapter_StartReqTrf_AllFields)
5926TEST_F(MSPROF_ACL_CORE_UTEST, ProfParamsAdapter_StartCfgTrf_AllMasks)5904TEST_F(MSPROF_ACL_CORE_UTEST, ProfParamsAdapter_StartCfgTrf_AllMasks)
5927{5905{
5928 auto a = NewAdapter();5906 auto a = NewAdapter();
5929- auto p = NewParams();
5930- a->StartCfgTrfToInnerParam(PROF_TASK_TSFW_MASK, p);
5931- EXPECT_EQ("on", p->taskTsfw);
5932 auto p2 = NewParams();5907 auto p2 = NewParams();
5933 a->StartCfgTrfToInnerParam(PROF_TASK_TIME_MASK, p2);5908 a->StartCfgTrfToInnerParam(PROF_TASK_TIME_MASK, p2);
5934 EXPECT_EQ(analysis::dvvp::common::config::MSVP_PROF_ON, p2->ts_memcpy);5909 EXPECT_EQ(analysis::dvvp::common::config::MSVP_PROF_ON, p2->ts_memcpy);
@@ -6186,9 +6161,6 @@ TEST_F(MSPROF_ACL_CORE_UTEST, ProfParamsAdapter_CheckJsonConfig_AllSwitchNames)
6186 .stubs().will(returnValue(true));6161 .stubs().will(returnValue(true));
6187 EXPECT_TRUE(a->CheckJsonConfig("host_sys_usage", v));6162 EXPECT_TRUE(a->CheckJsonConfig("host_sys_usage", v));
6188 GlobalMockObject::verify();6163 GlobalMockObject::verify();
6189- MOCKER_CPP(&ParamValidation::CheckMemServiceflowValid).stubs().will(returnValue(true));
6190- EXPECT_TRUE(a->CheckJsonConfig("sys_mem_serviceflow", v));
6191- GlobalMockObject::verify();
6192#ifndef BUILD_OPEN_PROJECT6164#ifndef BUILD_OPEN_PROJECT
6193 MOCKER_CPP(&ParamValidation::CheckTaskBlockValid).stubs().will(returnValue(true));6165 MOCKER_CPP(&ParamValidation::CheckTaskBlockValid).stubs().will(returnValue(true));
6194 EXPECT_TRUE(a->CheckJsonConfig("task_block", v));6166 EXPECT_TRUE(a->CheckJsonConfig("task_block", v));
@@ -490,13 +490,6 @@ TEST_F(INPUT_PARSER_UTEST, CheckBaseInfo) {
490 EXPECT_EQ(PROFILING_FAILED, parser.CheckAiCoreMetricsValid(cmdInfo, ARGS_AIV_METRICS));490 EXPECT_EQ(PROFILING_FAILED, parser.CheckAiCoreMetricsValid(cmdInfo, ARGS_AIV_METRICS));
491#endif491#endif
492 492 
493-#ifndef BUILD_OPEN_PROJECT
494- cmdInfo.args[ARGS_NPU_EVENTS] = "0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9";
495- EXPECT_EQ(PROFILING_FAILED, parser.CheckNpuEventsValid(cmdInfo, ARGS_NPU_EVENTS));
496- cmdInfo.args[ARGS_NPU_EVENTS] = "0x1,0x2,0x3";
497- EXPECT_EQ(PROFILING_SUCCESS, parser.CheckNpuEventsValid(cmdInfo, ARGS_NPU_EVENTS));
498-#endif
499- 
500 GlobalMockObject::verify();493 GlobalMockObject::verify();
501#ifndef BUILD_OPEN_PROJECT494#ifndef BUILD_OPEN_PROJECT
502 MOCKER_CPP(&Analysis::Dvvp::Common::Config::ConfigManager::GetPlatformType)495 MOCKER_CPP(&Analysis::Dvvp::Common::Config::ConfigManager::GetPlatformType)
@@ -625,7 +618,6 @@ TEST_F(INPUT_PARSER_UTEST, CheckBaseInfo) {
625 cmdInfo.args[ARGS_IO_PROFILING] = "1";618 cmdInfo.args[ARGS_IO_PROFILING] = "1";
626 cmdInfo.args[ARGS_MODEL_EXECUTION] = "1";619 cmdInfo.args[ARGS_MODEL_EXECUTION] = "1";
627 cmdInfo.args[ARGS_RUNTIME_API] = "1";620 cmdInfo.args[ARGS_RUNTIME_API] = "1";
628- cmdInfo.args[ARGS_TASK_TSFW] = "1";
629 cmdInfo.args[ARGS_AI_CORE] = "1";621 cmdInfo.args[ARGS_AI_CORE] = "1";
630 cmdInfo.args[ARGS_AIV] = "1";622 cmdInfo.args[ARGS_AIV] = "1";
631 cmdInfo.args[ARGS_CPU_PROFILING] = "1";623 cmdInfo.args[ARGS_CPU_PROFILING] = "1";
@@ -656,7 +648,6 @@ TEST_F(INPUT_PARSER_UTEST, CheckBaseInfo) {
656 parser.ParamsSwitchValid(cmdInfo, ARGS_IO_PROFILING);648 parser.ParamsSwitchValid(cmdInfo, ARGS_IO_PROFILING);
657 parser.ParamsSwitchValid(cmdInfo, ARGS_MODEL_EXECUTION);649 parser.ParamsSwitchValid(cmdInfo, ARGS_MODEL_EXECUTION);
658 parser.ParamsSwitchValid(cmdInfo, ARGS_RUNTIME_API);650 parser.ParamsSwitchValid(cmdInfo, ARGS_RUNTIME_API);
659- parser.ParamsSwitchValid(cmdInfo, ARGS_TASK_TSFW);
660 parser.ParamsSwitchValid(cmdInfo, ARGS_AI_CORE);651 parser.ParamsSwitchValid(cmdInfo, ARGS_AI_CORE);
661 parser.ParamsSwitchValid(cmdInfo, ARGS_AIV);652 parser.ParamsSwitchValid(cmdInfo, ARGS_AIV);
662 parser.ParamsSwitchValid(cmdInfo, ARGS_CPU_PROFILING);653 parser.ParamsSwitchValid(cmdInfo, ARGS_CPU_PROFILING);
@@ -717,7 +708,6 @@ TEST_F(INPUT_PARSER_UTEST, MsprofCmdCheckValid) {
717 cmdInfo.args[ARGS_DYNAMIC_PROF_PID] = "123";708 cmdInfo.args[ARGS_DYNAMIC_PROF_PID] = "123";
718 cmdInfo.args[ARGS_DELAY_PROF] = "1";709 cmdInfo.args[ARGS_DELAY_PROF] = "1";
719 cmdInfo.args[ARGS_DURATION_PROF] = "1";710 cmdInfo.args[ARGS_DURATION_PROF] = "1";
720- cmdInfo.args[ARGS_NPU_EVENTS] = "";
721 MOCKER(mmGetOptInd)711 MOCKER(mmGetOptInd)
722 .stubs()712 .stubs()
723 .will(returnValue(1));713 .will(returnValue(1));
@@ -731,14 +721,6 @@ TEST_F(INPUT_PARSER_UTEST, MsprofCmdCheckValid) {
731 EXPECT_EQ(MSPROF_DAEMON_OK, parser.MsprofCmdCheckValid(cmdInfo, ARGS_DYNAMIC_PROF_PID));721 EXPECT_EQ(MSPROF_DAEMON_OK, parser.MsprofCmdCheckValid(cmdInfo, ARGS_DYNAMIC_PROF_PID));
732 EXPECT_EQ(MSPROF_DAEMON_OK, parser.MsprofCmdCheckValid(cmdInfo, ARGS_DELAY_PROF));722 EXPECT_EQ(MSPROF_DAEMON_OK, parser.MsprofCmdCheckValid(cmdInfo, ARGS_DELAY_PROF));
733 EXPECT_EQ(MSPROF_DAEMON_OK, parser.MsprofCmdCheckValid(cmdInfo, ARGS_DURATION_PROF));723 EXPECT_EQ(MSPROF_DAEMON_OK, parser.MsprofCmdCheckValid(cmdInfo, ARGS_DURATION_PROF));
734- EXPECT_EQ(MSPROF_DAEMON_OK, parser.MsprofCmdCheckValid(cmdInfo, ARGS_NPU_EVENTS));
735- cmdInfo.args[ARGS_NPU_EVENTS] = "abcdefghijklmn";
736- EXPECT_EQ(MSPROF_DAEMON_ERROR, parser.MsprofCmdCheckValid(cmdInfo, ARGS_NPU_EVENTS));
737- EXPECT_EQ(MSPROF_DAEMON_ERROR, parser.MsprofCmdCheckValid(cmdInfo, ARGS_MEM_SERVICEFLOW));
738- cmdInfo.args[ARGS_MEM_SERVICEFLOW] = "";
739- EXPECT_EQ(MSPROF_DAEMON_ERROR, parser.MsprofCmdCheckValid(cmdInfo, ARGS_MEM_SERVICEFLOW));
740- cmdInfo.args[ARGS_MEM_SERVICEFLOW] = "aaa,bbb";
741- EXPECT_EQ(MSPROF_DAEMON_OK, parser.MsprofCmdCheckValid(cmdInfo, ARGS_MEM_SERVICEFLOW));
742}724}
743 725 
744TEST_F(INPUT_PARSER_UTEST, MsprofFreqCheckValid) {726TEST_F(INPUT_PARSER_UTEST, MsprofFreqCheckValid) {
@@ -182,11 +182,6 @@ TEST_F(AclApiDavidStest, AclApiSetConfig)
182 ret = aclprofSetConfig(configType, setConfig.c_str(), setConfig.size());182 ret = aclprofSetConfig(configType, setConfig.c_str(), setConfig.size());
183 EXPECT_EQ(ACL_SUCCESS, ret);183 EXPECT_EQ(ACL_SUCCESS, ret);
184 184
185- configType = ACL_PROF_SYS_MEM_SERVICEFLOW;
186- setConfig = "aaa,bbb";
187- ret = aclprofSetConfig(configType, setConfig.c_str(), setConfig.size());
188- EXPECT_EQ(ACL_SUCCESS, ret);
189-
190 configType = ACL_PROF_LLC_MODE;185 configType = ACL_PROF_LLC_MODE;
191 setConfig = "read";186 setConfig = "read";
192 ret = aclprofSetConfig(configType, setConfig.c_str(), setConfig.size());187 ret = aclprofSetConfig(configType, setConfig.c_str(), setConfig.size());
@@ -261,4 +256,4 @@ TEST_F(AclApiDavidStest, AclApiL3)
261 std::vector<std::string> deviceDataList = {"stars_soc.data", "ffts_profile.data"};256 std::vector<std::string> deviceDataList = {"stars_soc.data", "ffts_profile.data"};
262 std::vector<std::string> hostDataList = {"aging.additional.msproftx"};257 std::vector<std::string> hostDataList = {"aging.additional.msproftx"};
263 EXPECT_EQ(0, CheckFiles(aclProfPath, deviceDataList, hostDataList));258 EXPECT_EQ(0, CheckFiles(aclProfPath, deviceDataList, hostDataList));
264-}259+}
@@ -134,11 +134,6 @@ TEST_F(AclApiDavidV121Stest, AclApiSetConfig)
134 ret = aclprofSetConfig(configType, setConfig.c_str(), setConfig.size());134 ret = aclprofSetConfig(configType, setConfig.c_str(), setConfig.size());
135 EXPECT_EQ(ACL_SUCCESS, ret);135 EXPECT_EQ(ACL_SUCCESS, ret);
136 136 
137- configType = ACL_PROF_SYS_MEM_SERVICEFLOW;
138- setConfig = "aaa,bbb";
139- ret = aclprofSetConfig(configType, setConfig.c_str(), setConfig.size());
140- EXPECT_EQ(ACL_SUCCESS, ret);
141- 
142 configType = ACL_PROF_LLC_MODE;137 configType = ACL_PROF_LLC_MODE;
143 setConfig = "read";138 setConfig = "read";
144 ret = aclprofSetConfig(configType, setConfig.c_str(), setConfig.size());139 ret = aclprofSetConfig(configType, setConfig.c_str(), setConfig.size());
@@ -179,4 +174,4 @@ TEST_F(AclApiDavidV121Stest, AclApiSetConfig)
179 EXPECT_EQ(ACL_SUCCESS, ret);174 EXPECT_EQ(ACL_SUCCESS, ret);
180 175 
181 EXPECT_EQ(PROFILING_SUCCESS, AclApiStart(config, 0));176 EXPECT_EQ(PROFILING_SUCCESS, AclApiStart(config, 0));
182-}177+}
@@ -137,11 +137,6 @@ TEST_F(AclApiMilanStest, AclApiSetConfig)
137 ret = aclprofSetConfig(configType, setConfig.c_str(), setConfig.size());137 ret = aclprofSetConfig(configType, setConfig.c_str(), setConfig.size());
138 EXPECT_EQ(ACL_SUCCESS, ret);138 EXPECT_EQ(ACL_SUCCESS, ret);
139 139 
140- configType = ACL_PROF_SYS_MEM_SERVICEFLOW;
141- setConfig = "aaa,bbb";
142- ret = aclprofSetConfig(configType, setConfig.c_str(), setConfig.size());
143- EXPECT_EQ(ACL_SUCCESS, ret);
144- 
145 configType = ACL_PROF_LLC_MODE;140 configType = ACL_PROF_LLC_MODE;
146 setConfig = "read";141 setConfig = "read";
147 ret = aclprofSetConfig(configType, setConfig.c_str(), setConfig.size());142 ret = aclprofSetConfig(configType, setConfig.c_str(), setConfig.size());
@@ -240,4 +235,4 @@ TEST_F(AclApiMilanStest, AclApiStatsDefault)
240 std::vector<std::string> deviceDataList = {};235 std::vector<std::string> deviceDataList = {};
241 std::vector<std::string> hostDataList = {};236 std::vector<std::string> hostDataList = {};
242 EXPECT_EQ(0, CheckFiles(aclProfPath, deviceDataList, hostDataList));237 EXPECT_EQ(0, CheckFiles(aclProfPath, deviceDataList, hostDataList));
243-}238+}
@@ -1619,14 +1619,10 @@ TEST_F(MSPROF_ACL_CORE_STEST, ge_option_ParamAdaper) {
1619 analysis::dvvp::common::utils::Utils::RemoveDir(result);1619 analysis::dvvp::common::utils::Utils::RemoveDir(result);
1620 analysis::dvvp::common::utils::Utils::CreateDir(result);1620 analysis::dvvp::common::utils::Utils::CreateDir(result);
1621 EXPECT_EQ(MSPROF_ERROR_CONFIG_INVALID, ProfAclMgr::instance()->MsprofInitGeOptions((void *)&options, sizeof(options)));1621 EXPECT_EQ(MSPROF_ERROR_CONFIG_INVALID, ProfAclMgr::instance()->MsprofInitGeOptions((void *)&options, sizeof(options)));
1622- std::string ge_json = "{\"output\": \"/tmp/MsprofInitGeOptions\",\"aic_metrics\": \"Custom:0x500,0x502,0x504,0x506,0x508,0x50a,0xc,0xd\",\"aicpu\": \"on\",\"l2\": \"on\"}";1622+ std::string ge_json = "{\"output\": \"/tmp/MsprofInitGeOptions\",\"aic_metrics\": \"PipeUtilization\",\"aicpu\": \"on\",\"l2\": \"on\"}";
1623 strcpy(options.jobId, "123");1623 strcpy(options.jobId, "123");
1624 strcpy(options.options, ge_json.c_str());1624 strcpy(options.options, ge_json.c_str());
1625 EXPECT_EQ(MSPROF_ERROR_NONE, ProfAclMgr::instance()->MsprofInitGeOptions((void *)&options, sizeof(options)));1625 EXPECT_EQ(MSPROF_ERROR_NONE, ProfAclMgr::instance()->MsprofInitGeOptions((void *)&options, sizeof(options)));
1626- ge_json = "{\"output\": \"/tmp/MsprofInitGeOptions\",\"aic_metrics\": \"Custom:0x500,0x502,0x504,0x506,0x508,0x50a,0xc,0xss\",\"aicpu\": \"on\",\"l2\": \"on\"}";
1627- strcpy(options.jobId, "123");
1628- strcpy(options.options, ge_json.c_str());
1629- EXPECT_EQ(MSPROF_ERROR_CONFIG_INVALID, ProfAclMgr::instance()->MsprofInitGeOptions((void *)&options, sizeof(options)));
1630 ge_json = "{\"output\": \"/tmp/MsprofInitGeOptions\",\"aic_metrics\": \"Custom;0x5\",\"aicpu\": \"on\",\"l2\": \"on\"}";1626 ge_json = "{\"output\": \"/tmp/MsprofInitGeOptions\",\"aic_metrics\": \"Custom;0x5\",\"aicpu\": \"on\",\"l2\": \"on\"}";
1631 strcpy(options.jobId, "123");1627 strcpy(options.jobId, "123");
1632 strcpy(options.options, ge_json.c_str());1628 strcpy(options.options, ge_json.c_str());
@@ -513,7 +513,6 @@ TEST_F(INPUT_PARSER_STEST, CheckBaseInfo) {
513 cmdInfo.args[ARGS_IO_PROFILING] = "1";513 cmdInfo.args[ARGS_IO_PROFILING] = "1";
514 cmdInfo.args[ARGS_MODEL_EXECUTION] = "1";514 cmdInfo.args[ARGS_MODEL_EXECUTION] = "1";
515 cmdInfo.args[ARGS_RUNTIME_API] = "1";515 cmdInfo.args[ARGS_RUNTIME_API] = "1";
516- cmdInfo.args[ARGS_TASK_TSFW] = "1";
517 cmdInfo.args[ARGS_AI_CORE] = "1";516 cmdInfo.args[ARGS_AI_CORE] = "1";
518 cmdInfo.args[ARGS_AIV] = "1";517 cmdInfo.args[ARGS_AIV] = "1";
519 cmdInfo.args[ARGS_CPU_PROFILING] = "1";518 cmdInfo.args[ARGS_CPU_PROFILING] = "1";
@@ -541,7 +540,6 @@ TEST_F(INPUT_PARSER_STEST, CheckBaseInfo) {
541 parser.ParamsSwitchValid(cmdInfo, ARGS_IO_PROFILING);540 parser.ParamsSwitchValid(cmdInfo, ARGS_IO_PROFILING);
542 parser.ParamsSwitchValid(cmdInfo, ARGS_MODEL_EXECUTION);541 parser.ParamsSwitchValid(cmdInfo, ARGS_MODEL_EXECUTION);
543 parser.ParamsSwitchValid(cmdInfo, ARGS_RUNTIME_API);542 parser.ParamsSwitchValid(cmdInfo, ARGS_RUNTIME_API);
544- parser.ParamsSwitchValid(cmdInfo, ARGS_TASK_TSFW);
545 parser.ParamsSwitchValid(cmdInfo, ARGS_AI_CORE);543 parser.ParamsSwitchValid(cmdInfo, ARGS_AI_CORE);
546 parser.ParamsSwitchValid(cmdInfo, ARGS_AIV);544 parser.ParamsSwitchValid(cmdInfo, ARGS_AIV);
547 parser.ParamsSwitchValid(cmdInfo, ARGS_CPU_PROFILING);545 parser.ParamsSwitchValid(cmdInfo, ARGS_CPU_PROFILING);
@@ -632,4 +630,4 @@ TEST_F(INPUT_PARSER_STEST, MsprofCmdCheckValid) {
632 .will(returnValue(1));630 .will(returnValue(1));
633 EXPECT_EQ(MSPROF_DAEMON_OK, parser.MsprofCmdCheckValid(cmdInfo, ARGS_DYNAMIC_PROF));631 EXPECT_EQ(MSPROF_DAEMON_OK, parser.MsprofCmdCheckValid(cmdInfo, ARGS_DYNAMIC_PROF));
634 EXPECT_EQ(MSPROF_DAEMON_OK, parser.MsprofCmdCheckValid(cmdInfo, ARGS_DYNAMIC_PROF_PID));632 EXPECT_EQ(MSPROF_DAEMON_OK, parser.MsprofCmdCheckValid(cmdInfo, ARGS_DYNAMIC_PROF_PID));
635-}633+}