From 87c5c38d4450499b78fce2ff080fe90161b70b64 Mon Sep 17 00:00:00 2001 From: "Bill(Shuzhou) Liu" Date: Mon, 26 Jun 2023 07:59:49 -0500 Subject: [PATCH 1/2] Crash if no hwmon sysfs Return NOT_SUPPORTED if no hwmon sysfs. Change-Id: I01356a21f004ab552ca6ef7ffb49934bfdfd5e31 [ROCm/rocm_smi_lib commit: 910bf677a9d978e795f29438ccd8d6df5bb75eb3] --- projects/rocm-smi-lib/src/rocm_smi.cc | 28 +++++++++++++------- projects/rocm-smi-lib/src/rocm_smi_device.cc | 3 +++ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/projects/rocm-smi-lib/src/rocm_smi.cc b/projects/rocm-smi-lib/src/rocm_smi.cc index 12f6d2c665..4cd359ce3a 100755 --- a/projects/rocm-smi-lib/src/rocm_smi.cc +++ b/projects/rocm-smi-lib/src/rocm_smi.cc @@ -341,7 +341,9 @@ static rsmi_status_t get_dev_mon_value(amd::smi::MonitorTypes type, } GET_DEV_FROM_INDX - assert(dev->monitor() != nullptr); + if (dev->monitor() == nullptr) { + return RSMI_STATUS_NOT_SUPPORTED; + } std::string val_str; @@ -369,8 +371,9 @@ static rsmi_status_t get_dev_mon_value(amd::smi::MonitorTypes type, } GET_DEV_FROM_INDX - assert(dev->monitor() != nullptr); - + if (dev->monitor() == nullptr) { + return RSMI_STATUS_NOT_SUPPORTED; + } std::string val_str; int ret = dev->monitor()->readMonitor(type, sensor_ind, &val_str); @@ -394,8 +397,9 @@ static rsmi_status_t set_dev_mon_value(amd::smi::MonitorTypes type, uint32_t dv_ind, uint32_t sensor_ind, T val) { GET_DEV_FROM_INDX - assert(dev->monitor() != nullptr); - + if (dev->monitor() == nullptr) { + return RSMI_STATUS_NOT_SUPPORTED; + } int ret = dev->monitor()->writeMonitor(type, sensor_ind, std::to_string(val)); @@ -416,9 +420,9 @@ static rsmi_status_t get_power_mon_value(amd::smi::PowerMonTypes type, } std::shared_ptr dev = smi.devices()[dv_ind]; - assert(dev != nullptr); - assert(dev->monitor() != nullptr); - + if (dev == nullptr || dev->monitor() == nullptr) { + return RSMI_STATUS_NOT_SUPPORTED; + } ret = dev->power_monitor()->readPowerValue(type, val); return amd::smi::ErrnoToRsmiStatus(ret); @@ -2503,7 +2507,9 @@ rsmi_dev_temp_metric_get(uint32_t dv_ind, uint32_t sensor_type, GET_DEV_FROM_INDX - assert(dev->monitor() != nullptr); + if (dev->monitor() == nullptr) { + return RSMI_STATUS_NOT_SUPPORTED; + } std::shared_ptr m = dev->monitor(); // getTempSensorIndex will throw an out of range exception if sensor_type is @@ -2564,7 +2570,9 @@ rsmi_dev_volt_metric_get(uint32_t dv_ind, rsmi_voltage_type_t sensor_type, GET_DEV_FROM_INDX - assert(dev->monitor() != nullptr); + if (dev->monitor() == nullptr) { + return RSMI_STATUS_NOT_SUPPORTED; + } std::shared_ptr m = dev->monitor(); // getVoltSensorIndex will throw an out of range exception if sensor_type is diff --git a/projects/rocm-smi-lib/src/rocm_smi_device.cc b/projects/rocm-smi-lib/src/rocm_smi_device.cc index 311aee3edd..18c96b7f13 100755 --- a/projects/rocm-smi-lib/src/rocm_smi_device.cc +++ b/projects/rocm-smi-lib/src/rocm_smi_device.cc @@ -1092,6 +1092,9 @@ void Device::fillSupportedFuncs(void) { if (supported_funcs_.size() != 0) { return; } + if (monitor() == nullptr) { + return; + } std::map::const_iterator it = kDevFuncDependsMap.begin(); From cca727f7e362e6bff11e8c08bdee33ed63265204 Mon Sep 17 00:00:00 2001 From: Jeremy Newton Date: Fri, 23 Jun 2023 14:07:21 -0400 Subject: [PATCH 2/2] Fix python script install permissions The keyword "PROGRAMS" should be used in place of "FILES" in order to make sure executable scripts have the correct permissions. Change-Id: I6c287dc1291774ad6d97a04d621957dea0a1b697 Signed-off-by: Jeremy Newton [ROCm/rocm_smi_lib commit: d00d885394cfebd2e7c18718b1dde76c35b59cde] --- projects/rocm-smi-lib/rocm_smi/CMakeLists.txt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/projects/rocm-smi-lib/rocm_smi/CMakeLists.txt b/projects/rocm-smi-lib/rocm_smi/CMakeLists.txt index c6085c6d2a..f9b7c4181a 100755 --- a/projects/rocm-smi-lib/rocm_smi/CMakeLists.txt +++ b/projects/rocm-smi-lib/rocm_smi/CMakeLists.txt @@ -134,12 +134,10 @@ install(FILES ${COMMON_SRC_ROOT}/include/rocm_smi/${ROCM_SMI_TARGET}Config.h install(FILES ${COMMON_SRC_ROOT}/include/rocm_smi/kfd_ioctl.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/rocm_smi COMPONENT dev) -install(FILES ${COMMON_SRC_ROOT}/python_smi_tools/rsmiBindings.py +install(PROGRAMS ${COMMON_SRC_ROOT}/python_smi_tools/rsmiBindings.py DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${ROCM_SMI} COMPONENT dev) -install(FILES ${COMMON_SRC_ROOT}/python_smi_tools/rocm_smi.py - PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ - GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE +install(PROGRAMS ${COMMON_SRC_ROOT}/python_smi_tools/rocm_smi.py DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${ROCM_SMI} COMPONENT dev) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/bin/rocm-smi