| @@ -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, |
| @@ -200,7 +200,6 @@ const char * const MSVP_PROF_EMPTY_STRING = ""; | |||
| 200 | const char * const MSVP_PROF_ACLAPI_MODE = "aclapi"; | 200 | const char * const MSVP_PROF_ACLAPI_MODE = "aclapi"; |
| 201 | const char * const MSVP_PROF_SUBSCRIBE_MODE = "subscribe"; | 201 | const char * const MSVP_PROF_SUBSCRIBE_MODE = "subscribe"; |
| 202 | const char * const MSVP_PROF_SYSTEM_MODE = "system"; | 202 | const char * const MSVP_PROF_SYSTEM_MODE = "system"; |
| 203 | -const char * const MSVP_PROF_ALL = "all"; | ||
| 204 | const char * const HELPER_HOST_CPU_MODE = "64"; | 203 | const char * const HELPER_HOST_CPU_MODE = "64"; |
| 205 | 204 | ||
| 206 | // dynamic profiling | 205 | // 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; |
CheckTaskBlockValid 移除了对 "all" 选项的支持和平台特定检查。现有用户如果传入 "all" 将收到错误,这是不兼容的接口变更。建议在文档或 release notes 中明确标注此破坏性变更,或提供过渡期的兼容处理(如将 "all" 映射为 "on" 并输出警告)。 ![]() ![]() | |||
| 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 | - | ||
| 561 | bool ParamValidation::CheckTsSwitchProfiling(SHARED_PTR_ALIA<analysis::dvvp::message::ProfileParams> params) | 550 | bool 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 | - | ||
| 1144 | bool ParamValidation::CheckAiCoreEventsIsValid(const std::vector<std::string> &events) const | 1117 | bool 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 | 1180 | ||
| @@ -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 | ||
| 93 | private: | 92 | private: |
| 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", |
GetAclProfConfigTypeName 中索引 12 处现在返回 nullptr。如果调用方未做 null 检查直接使用返回值(如 strlen、printf %s 等),将导致空指针崩溃。建议返回空字符串 "" 而非 nullptr,或在调用方增加 null 检查。 ![]() ![]() | |||
| 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 | ||
| 916 | void ProfAclMgr::ChangeLevelConf(SHARED_PTR_ALIA<analysis::dvvp::message::ProfileParams> params) const | 911 | void 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 | } |
移除了 object.RemoveByKey("memServiceflow"),但 ProfileParams 结构体中 memServiceflow 字段仍然存在。如果 ToObject 仍序列化该字段,memServiceflow 将出现在 JSON 输出中,可能导致下游组件解析异常或泄露内部数据。建议要么从 ProfileParams 中移除该字段,要么保留 RemoveByKey 调用。 ![]() ![]() | |||
| 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); |
MsprofAclJsonParamConstruct 中仍调用 L2CacheAdaptor(params_->npuEvents, ...),但命令行 --npu-events 选项和 ARGS_NPU_EVENTS 已被移除,npuEvents 字段将永远为空。如果 L2CacheAdaptor 依赖非空的 npuEvents 进行 L2 cache 事件适配,可能导致 L2 cache 采集功能退化。需确认 L2CacheAdaptor 对空 npuEvents 的处理是否正确。 ![]() ![]() | |||
| 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 | // switch | 60 | // 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 hz | 101 | ARGS_CPU_SAMPLING_FREQ, // 50 1-50 hz |
ARGS_INVALID 的值从 67 改为 63,且位置移到 ARGS_SYS_LOW_POWER_FREQ 之前。这导致后续所有枚举值(ARGS_SYS_LOW_POWER_FREQ、ARGS_EXPORT_ITERATION_ID 等)的数值发生变化。如果有任何代码依赖这些枚举的具体数值(如序列化、持久化),将导致不兼容。 ![]() ![]() | |||
| 105 | ARGS_INTERCONNECTION_FREQ, // 50 1-50 hz | 102 | ARGS_INTERCONNECTION_FREQ, // 50 1-50 hz |
| 106 | ARGS_HOST_SYS_USAGE_FREQ, // 50 1-50 hz | 103 | 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-10000hz | 105 | ARGS_SYS_LOW_POWER_FREQ, // 10000 1-10000hz |
🔴 Critical 变更行: 枚举值计算: 两者值相同(63),造成枚举值冲突。 直接影响: 当用户传入 测试影响: 触发条件:任何使用 建议: ![]() ![]() 不准确? | |||
| 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 | // host | 108 | // 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 | // switch | 143 | // 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 off | 147 | {"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 off | 148 | {"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 on | 149 | {"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 on | 151 | {"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 | // host | 191 | // 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 | - | ||
| 239 | - int32_t CheckNpuEventsValid(const struct MsprofCmdInfo &cmdInfo, int32_t opt) const; | ||
| 240 | - | ||
| 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 | - | ||
| 249 | - int32_t CheckMemServiceflow(const struct MsprofCmdInfo &cmdInfo) const; | ||
| 250 | - | ||
| 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 | 1190 | ||||||||||||||||||||||
| 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 | 1213 | ||||||||||||||||||||||
| 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 | 1218 | ||||||||||||||||||||||
| 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 | 1230 | ||||||||||||||||||||||
| 1232 | platformArgsType[PlatformType::MINI_TYPE] = miniBlackSwith; | 1231 | platformArgsType[PlatformType::MINI_TYPE] = miniBlackSwith; | ||||||||||||||||||||
| 1233 | 1232 | ||||||||||||||||||||||
| @@ -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 | - | ||||||||||||||||||||||
| 1568 | - ret = CheckNpuEventsValid(cmdInfo, opt); | ||||||||||||||||||||||
| 1569 | - | ||||||||||||||||||||||
| 1570 | - params_->npuEvents = cmdInfo.args[opt]; | ||||||||||||||||||||||
| 1571 | - ret = MSPROF_DAEMON_OK; | ||||||||||||||||||||||
| 1572 | - | ||||||||||||||||||||||
| 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 | ||||||||||||||||||||||
SetTaskBlockParam 中 taskBlockShink 的逻辑与旧代码行为相反。旧代码:taskBlock=="on" 时 shink=OFF;新代码:taskBlock=="on" 时 shink=ON。虽然新逻辑与 MsprofAclJsonParamConstruct/MsprofInitGeOptionsParamAdaper 中的 JSON 路径一致(可能是 bug 修复),但这是行为变更,需确认是否符合预期,并验证对采集数据的影响。 ![]() ![]() | |||||||||||||||||||||||
| 1661 | void InputParser::SetTaskBlockParam(const char *argValue) | 1649 | void 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 | } | ||||||||||||||||||||
🔴 Critical 变更行: 同时,该函数中的 建议:将 改动建议
![]() ![]() 不准确? 🔴 Critical 变更行: 该函数未在此次 diff 中修改,因此引用了已删除的常量。这将导致编译错误(undefined identifier 触发条件:任何包含此翻译单元的构建。 失败模式:编译失败。 建议:由于 改动建议
![]() ![]() 不准确? | |||||||||||||||||||||||
| 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 | - | ||||||||||||||||||||||
| 1696 | - ret = CheckMemServiceflow(cmdInfo); | ||||||||||||||||||||||
| 1697 | - | ||||||||||||||||||||||
| 1698 | - if (cmdInfo.args[ARGS_MEM_SERVICEFLOW] != nullptr) { | ||||||||||||||||||||||
| 1699 | - params_->memServiceflow = cmdInfo.args[ARGS_MEM_SERVICEFLOW]; | ||||||||||||||||||||||
| 1700 | - } | ||||||||||||||||||||||
| 1701 | - ret = MSPROF_DAEMON_OK; | ||||||||||||||||||||||
| 1702 | - | ||||||||||||||||||||||
| 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 | - | ||
| 122 | void ArgsManager::AddLowPowerArgs() | 63 | void 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}; |
🟡 Medium Priority 变更将 受影响平台:除 CHIP_CLOUD_V3、CHIP_CLOUD_V4、CHIP_MDC_V2、CHIP_MDC_LITE_V2 之外的所有平台。 建议:应同步更新 ![]() ![]() 不准确? 🟡 Medium Priority
建议:同步更新 ![]() ![]() 不准确? | |||
| 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 | 1470 | ||
| 1471 | ARGS_SYS_LOW_POWER, ARGS_SYS_LOW_POWER_FREQ, | 1471 | ARGS_SYS_LOW_POWER, ARGS_SYS_LOW_POWER_FREQ, |
| 1472 | 1472 | ||
| 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_EXCLUDE | 1476 | 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) { |
移除了 PROF_TASK_TIME_L3_MASK 的处理逻辑(将 L3 升级为 L0+L1+L2),但 PLATFORM_TASK_TRACE_L3 仅从 CloudV2Platform 移除,其他平台仍可能支持 L3。如果其他平台仍使用 L3,该移除将导致 L3 请求不再自动包含低级别数据,是潜在回归。 ![]() ![]() | |||
| 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) || |
🟡 Medium Priority 变更行: 建议:若 L3 功能确实保留,应恢复 L3 检查行。若 L3 已被整体废弃,应同步清理 ![]() ![]() 不准确? | |||
| 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, |
CloudV2Platform 移除了 PLATFORM_TASK_BLOCK 和 PLATFORM_TASK_TRACE_L3。这是功能退化,CloudV2 平台不再支持 task_block 采集和 L3 级别 trace。需确认这是有意决策而非遗漏。 ![]() ![]() | |||
| 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_STATS | 86 | 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_STATS | 67 | 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_STATS | 63 | 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 | // Device | 59 | // Device |
| 61 | PLATFORM_SYS_DEVICE_US, | 60 | PLATFORM_SYS_DEVICE_US, |
| 62 | // Feature | 61 | // 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_ENABLE | 66 | 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_ENABLE | 70 | 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 | ||
GetAiPmuMetrics 函数引入了行尾多余空格(多处行尾多了空格字符)。虽然不影响功能,但不符合代码规范,建议清理。 ![]() ![]() | |||
| 38 | int32_t PlatformInterface::GetAiPmuMetrics(const std::string &key, std::string &vaule) | 38 | int32_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) const | 92 | SHARED_PTR_ALIA<analysis::dvvp::message::ProfileParams> params) const |
StartCfgTrfToInnerParam 中仍然设置 params->taskTsfw = "on",但 UpdateDataTypeConfigBySwitch(params->taskTsfw, PROF_TASK_TSFW) 已被移除,且 PLATFORM_TASK_TSFW 已从所有平台特性中删除。这是死代码,应一并清理以避免混淆。 ![]() ![]() | |||
| 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_memcpy | 99 | // 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 | 148 | ||
| 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 | 755 | ||
| 756 | } | 756 | } |
| 757 | 757 | ||
| 758 | -#endif | 758 | +#endif |
| @@ -60,4 +60,4 @@ | |||
| 60 | // profSwitchHi config, upper 16 bits will be send to aicpu by runtime | 60 | // profSwitchHi config, upper 16 bits will be send to aicpu by runtime |
| 61 | 61 | ||
| 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 | - | ||
| 173 | TEST_F(COMMON_VALIDATION_PARAM_VALIDATION_TEST, CheckTsSwitchProfiling) { | 166 | TEST_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)); |
移除了 Custom aic_metrics 的测试用例(如 "Custom:0x500,0x502,..."),但 platform_interface.cpp 中 GetAiPmuMetrics 的 Custom metrics 处理代码仍然存在。这导致该功能路径失去测试覆盖,是测试缺口。 ![]() ![]() | |||
| 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 | -#endif | 1092 | +#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) | |||
| 5926 | TEST_F(MSPROF_ACL_CORE_UTEST, ProfParamsAdapter_StartCfgTrf_AllMasks) | 5904 | TEST_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 | 6164 | ||
| 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 | 491 | ||
| 492 | 492 | ||
| 493 | - | ||
| 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 | - | ||
| 499 | - | ||
| 500 | GlobalMockObject::verify(); | 493 | GlobalMockObject::verify(); |
| 501 | 494 | ||
| 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 | ||
| 744 | TEST_F(INPUT_PARSER_UTEST, MsprofFreqCheckValid) { | 726 | TEST_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 | +} |


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