From 83c88f26d13c9f2a0936e44d866cd78e890d86d7 Mon Sep 17 00:00:00 2001 From: "Mewar, Deepak" Date: Wed, 26 Feb 2025 14:43:22 +0530 Subject: [PATCH] [SWDEV-511011] version command fails when driver isn't loaded (#123) Signed-off-by: Deepak Mewar Change-Id: Ibe77c904-1a5c-4361-8fad-291a203c6755 --- amdsmi_cli/amdsmi_commands.py | 24 ++++++++++++++++++++++++ src/amd_smi/amd_smi.cc | 2 -- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/amdsmi_cli/amdsmi_commands.py b/amdsmi_cli/amdsmi_commands.py index d7bfd3fff2..34e23768a3 100644 --- a/amdsmi_cli/amdsmi_commands.py +++ b/amdsmi_cli/amdsmi_commands.py @@ -95,6 +95,30 @@ class AMDSMICommands(): exit_flag = True if exit_flag: + try: + amdsmi_lib_version = amdsmi_interface.amdsmi_get_lib_version() + amdsmi_lib_version_str = f"{amdsmi_lib_version['year']}.{amdsmi_lib_version['major']}.{amdsmi_lib_version['minor']}.{amdsmi_lib_version['release']}" + except amdsmi_exception.AmdSmiLibraryException as e: + amdsmi_lib_version_str = e.get_error_info() + + self.logger.output['tool'] = 'AMDSMI Tool' + self.logger.output['version'] = f'{__version__}' + self.logger.output['amdsmi_library_version'] = f'{amdsmi_lib_version_str}' + self.logger.output['rocm_version'] = f'{get_rocm_version()}' + + if self.logger.is_human_readable_format(): + human_readable_output = f"AMDSMI Tool: {__version__} | " \ + f"AMDSMI Library version: {amdsmi_lib_version_str} | " \ + f"ROCm version: {get_rocm_version()}" + # Custom human readable handling for version + if self.logger.destination == 'stdout': + print(human_readable_output) + else: + with self.logger.destination.open('a', encoding="utf-8") as output_file: + output_file.write(human_readable_output + '\n') + elif self.logger.is_json_format() or self.logger.is_csv_format(): + self.logger.print_output() + sys.exit(-1) diff --git a/src/amd_smi/amd_smi.cc b/src/amd_smi/amd_smi.cc index 1165b8ddae..31e8ddba65 100644 --- a/src/amd_smi/amd_smi.cc +++ b/src/amd_smi/amd_smi.cc @@ -2952,8 +2952,6 @@ amdsmi_status_t amdsmi_get_gpu_topo_numa_affinity( } amdsmi_status_t amdsmi_get_lib_version(amdsmi_version_t *version) { - AMDSMI_CHECK_INIT(); - if (version == nullptr) return AMDSMI_STATUS_INVAL;