From b49e82a4f4f7f3760014ae7cd9b0a905815a3ddb Mon Sep 17 00:00:00 2001 From: Charis Poag Date: Tue, 31 Oct 2023 17:37:43 -0500 Subject: [PATCH] Fix GPU Metric content revision check Change-Id: I94ff4732be01214591b635357d9a62eb7d5192a0 Signed-off-by: Charis Poag --- rocm_smi/example/rocm_smi_example.cc | 4 ++++ src/rocm_smi_gpu_metrics.cc | 13 +++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/rocm_smi/example/rocm_smi_example.cc b/rocm_smi/example/rocm_smi_example.cc index 0515d75d3c..cef1fd1263 100755 --- a/rocm_smi/example/rocm_smi_example.cc +++ b/rocm_smi/example/rocm_smi_example.cc @@ -808,6 +808,10 @@ int main() { print_test_header("GPU METRICS", i); print_function_header_with_rsmi_ret(ret, "rsmi_dev_gpu_metrics_info_get(" + std::to_string(i) + ", &p)"); + std::cout << "\t**p.common_header.content_revision: " << std::dec + << p.common_header.content_revision << "\n"; + std::cout << "\t**p.common_header.format_revision: " << std::dec + << p.common_header.format_revision << "\n"; std::cout << "\t**p.average_gfxclk_frequency: " << std::dec << p.average_gfxclk_frequency << "\n"; std::cout << "\t**p.average_socclk_frequency: " << std::dec diff --git a/src/rocm_smi_gpu_metrics.cc b/src/rocm_smi_gpu_metrics.cc index b055876398..6833d35e91 100755 --- a/src/rocm_smi_gpu_metrics.cc +++ b/src/rocm_smi_gpu_metrics.cc @@ -496,10 +496,15 @@ rsmi_dev_gpu_metrics_info_get(uint32_t dv_ind, rsmi_gpu_metrics_t *smu) { // a specific version. *smu = {}; - uint8_t dev_content_revision = dev->gpu_metrics_ver().content_revision; - if (dev_content_revision != RSMI_GPU_METRICS_API_CONTENT_VER_1 || - dev_content_revision != RSMI_GPU_METRICS_API_CONTENT_VER_2 || - dev_content_revision != RSMI_GPU_METRICS_API_CONTENT_VER_3) { + bool isRevisionExpected = ((dev->gpu_metrics_ver().content_revision == 1) || + (dev->gpu_metrics_ver().content_revision == 2) || + (dev->gpu_metrics_ver().content_revision == 3)); + if (isRevisionExpected == false) { + ss << __PRETTY_FUNCTION__ << " | content revision was = " + << print_unsigned_hex_and_int(dev->gpu_metrics_ver().content_revision) + << ", expected version 1,2, or 3 | returning " + << getRSMIStatusString(RSMI_STATUS_NOT_SUPPORTED); + LOG_ERROR(ss); return RSMI_STATUS_NOT_SUPPORTED; } if (dev->gpu_metrics_ver().content_revision ==