From 06005c7f6b020378553de7a22351e28ca1f3f9eb Mon Sep 17 00:00:00 2001 From: "Kandula, Venkateshwar reddy" Date: Sun, 27 Apr 2025 20:03:27 -0500 Subject: [PATCH] [SDK] SWDEV-524163 - Add error msg when accumulate is used on counters not from sq block. (#348) * add error log when accumulate is used on counters not from sq block. * Address comments. --------- Co-authored-by: Venkateshwar Reddy Kandula --- source/lib/rocprofiler-sdk/counters/evaluate_ast.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source/lib/rocprofiler-sdk/counters/evaluate_ast.cpp b/source/lib/rocprofiler-sdk/counters/evaluate_ast.cpp index 65cfec5887..49920effb4 100644 --- a/source/lib/rocprofiler-sdk/counters/evaluate_ast.cpp +++ b/source/lib/rocprofiler-sdk/counters/evaluate_ast.cpp @@ -21,11 +21,13 @@ // SOFTWARE. #include "lib/rocprofiler-sdk/counters/evaluate_ast.hpp" +#include "lib/common/logging.hpp" #include "lib/common/static_object.hpp" #include "lib/common/synchronized.hpp" #include "lib/common/utility.hpp" #include "lib/rocprofiler-sdk/counters/dimensions.hpp" #include "lib/rocprofiler-sdk/counters/id_decode.hpp" +#include "lib/rocprofiler-sdk/counters/parser/raw_ast.hpp" #include "lib/rocprofiler-sdk/counters/parser/reader.hpp" #include @@ -408,6 +410,11 @@ EvaluateAST::EvaluateAST(rocprofiler_counter_id_t out_id, _metric = metrics.at(std::get(ast.value)); if(_type == NodeType::ACCUMULATE_NODE) { + ROCP_FATAL_IF(ast.accumulate_op != ACCUMULATE_OP_TYPE::NONE && + _metric.block() != "SQ") + << fmt::format("Accumulate High_RES/Low_RES only works for counters from SQ " + "block: invalid operation on {} counter.", + _metric.name()); _metric.setflags(static_cast(ast.accumulate_op)); } } catch(std::exception& e)