diff --git a/projects/amdsmi/include/amd_smi/amdsmi.h b/projects/amdsmi/include/amd_smi/amdsmi.h index ff0c30a448..6a232afbff 100644 --- a/projects/amdsmi/include/amd_smi/amdsmi.h +++ b/projects/amdsmi/include/amd_smi/amdsmi.h @@ -316,6 +316,7 @@ typedef enum { AMDSMI_STATUS_INPUT_OUT_OF_BOUNDS = 17, //!< The provided input is out of allowable or safe range AMDSMI_STATUS_INIT_ERROR = 18, //!< An error occurred when initializing internal data structures AMDSMI_STATUS_REFCOUNT_OVERFLOW = 19, //!< An internal reference counter exceeded INT32_MAX + AMDSMI_STATUS_DIRECTORY_NOT_FOUND = 20, //!< Error when a directory is not found, maps to ENOTDIR // Processor related errors AMDSMI_STATUS_BUSY = 30, //!< Processor busy AMDSMI_STATUS_NOT_FOUND = 31, //!< Processor Not found diff --git a/projects/amdsmi/include/amd_smi/impl/amd_smi_common.h b/projects/amdsmi/include/amd_smi/impl/amd_smi_common.h index 1c679b2a3b..a8fee92d28 100644 --- a/projects/amdsmi/include/amd_smi/impl/amd_smi_common.h +++ b/projects/amdsmi/include/amd_smi/impl/amd_smi_common.h @@ -58,6 +58,7 @@ const std::map rsmi_status_map = { {RSMI_STATUS_UNEXPECTED_DATA, AMDSMI_STATUS_UNEXPECTED_DATA}, {RSMI_STATUS_BUSY, AMDSMI_STATUS_BUSY}, {RSMI_STATUS_REFCOUNT_OVERFLOW, AMDSMI_STATUS_REFCOUNT_OVERFLOW}, + {RSMI_STATUS_DIRECTORY_NOT_FOUND, AMDSMI_STATUS_DIRECTORY_NOT_FOUND}, {RSMI_STATUS_SETTING_UNAVAILABLE, AMDSMI_STATUS_SETTING_UNAVAILABLE}, {RSMI_STATUS_AMDGPU_RESTART_ERR, AMDSMI_STATUS_AMDGPU_RESTART_ERR}, {RSMI_STATUS_UNKNOWN_ERROR, AMDSMI_STATUS_UNKNOWN_ERROR}, diff --git a/projects/amdsmi/py-interface/amdsmi_exception.py b/projects/amdsmi/py-interface/amdsmi_exception.py index 958786a603..e19a435e4a 100644 --- a/projects/amdsmi/py-interface/amdsmi_exception.py +++ b/projects/amdsmi/py-interface/amdsmi_exception.py @@ -66,6 +66,7 @@ class AmdSmiLibraryException(AmdSmiException): amdsmi_wrapper.AMDSMI_STATUS_INPUT_OUT_OF_BOUNDS : "AMDSMI_STATUS_INPUT_OUT_OF_BOUNDS - Out of bounds", amdsmi_wrapper.AMDSMI_STATUS_INIT_ERROR : "AMDSMI_STATUS_INIT_ERROR - Initialization error", amdsmi_wrapper.AMDSMI_STATUS_REFCOUNT_OVERFLOW : "AMDSMI_STATUS_REFCOUNT_OVERFLOW - Internal reference counter exceeded INT32_MAX", + amdsmi_wrapper.AMDSMI_STATUS_DIRECTORY_NOT_FOUND : "AMDSMI_STATUS_DIRECTORY_NOT_FOUND - Error when a directory is not found, maps to ENOTDIR", amdsmi_wrapper.AMDSMI_STATUS_BUSY : "AMDSMI_STATUS_BUSY - Device busy", amdsmi_wrapper.AMDSMI_STATUS_NOT_FOUND : "AMDSMI_STATUS_NOT_FOUND - Device Not found", amdsmi_wrapper.AMDSMI_STATUS_NOT_INIT : "AMDSMI_STATUS_NOT_INIT - Device not initialized", diff --git a/projects/amdsmi/py-interface/amdsmi_wrapper.py b/projects/amdsmi/py-interface/amdsmi_wrapper.py index af5f169d4c..e8974b3ce2 100644 --- a/projects/amdsmi/py-interface/amdsmi_wrapper.py +++ b/projects/amdsmi/py-interface/amdsmi_wrapper.py @@ -302,6 +302,7 @@ amdsmi_status_t__enumvalues = { 17: 'AMDSMI_STATUS_INPUT_OUT_OF_BOUNDS', 18: 'AMDSMI_STATUS_INIT_ERROR', 19: 'AMDSMI_STATUS_REFCOUNT_OVERFLOW', + 20: 'AMDSMI_STATUS_DIRECTORY_NOT_FOUND', 30: 'AMDSMI_STATUS_BUSY', 31: 'AMDSMI_STATUS_NOT_FOUND', 32: 'AMDSMI_STATUS_NOT_INIT', @@ -348,6 +349,7 @@ AMDSMI_STATUS_INTERNAL_EXCEPTION = 16 AMDSMI_STATUS_INPUT_OUT_OF_BOUNDS = 17 AMDSMI_STATUS_INIT_ERROR = 18 AMDSMI_STATUS_REFCOUNT_OVERFLOW = 19 +AMDSMI_STATUS_DIRECTORY_NOT_FOUND = 20 AMDSMI_STATUS_BUSY = 30 AMDSMI_STATUS_NOT_FOUND = 31 AMDSMI_STATUS_NOT_INIT = 32 @@ -3119,6 +3121,7 @@ __all__ = \ 'AMDSMI_STATUS_AMDGPU_RESTART_ERR', 'AMDSMI_STATUS_API_FAILED', 'AMDSMI_STATUS_ARG_PTR_NULL', 'AMDSMI_STATUS_BUSY', 'AMDSMI_STATUS_CORRUPTED_EEPROM', + 'AMDSMI_STATUS_DIRECTORY_NOT_FOUND', 'AMDSMI_STATUS_DRIVER_NOT_LOADED', 'AMDSMI_STATUS_DRM_ERROR', 'AMDSMI_STATUS_FAIL_LOAD_MODULE', 'AMDSMI_STATUS_FAIL_LOAD_SYMBOL', 'AMDSMI_STATUS_FILE_ERROR', diff --git a/projects/amdsmi/rocm_smi/include/rocm_smi/rocm_smi.h b/projects/amdsmi/rocm_smi/include/rocm_smi/rocm_smi.h index e272067288..e6656d0ebb 100644 --- a/projects/amdsmi/rocm_smi/include/rocm_smi/rocm_smi.h +++ b/projects/amdsmi/rocm_smi/include/rocm_smi/rocm_smi.h @@ -108,6 +108,8 @@ typedef enum { //!< being used RSMI_STATUS_REFCOUNT_OVERFLOW, //!< An internal reference counter //!< exceeded INT32_MAX + RSMI_STATUS_DIRECTORY_NOT_FOUND, //!< Error when a directory is not + //!< found, maps to ENOTDIR RSMI_STATUS_SETTING_UNAVAILABLE, //!< Requested setting is unavailable //!< for the current device RSMI_STATUS_AMDGPU_RESTART_ERR, //!< Could not successfully restart diff --git a/projects/amdsmi/rocm_smi/src/rocm_smi.cc b/projects/amdsmi/rocm_smi/src/rocm_smi.cc index 5121df33d3..c1985e0d35 100644 --- a/projects/amdsmi/rocm_smi/src/rocm_smi.cc +++ b/projects/amdsmi/rocm_smi/src/rocm_smi.cc @@ -706,13 +706,6 @@ rsmi_dev_ecc_count_get(uint32_t dv_ind, rsmi_gpu_block_t block, ret = GetDevValueVec(type, dv_ind, &val_vec); if (val_vec.size() < 2 ) ret = RSMI_STATUS_FILE_ERROR; - if (ret == RSMI_STATUS_FILE_ERROR) { - ss << __PRETTY_FUNCTION__ << " | ======= end =======" - << ", GetDevValueVec() ret was RSMI_STATUS_FILE_ERROR " - << "-> reporting RSMI_STATUS_NOT_SUPPORTED"; - LOG_ERROR(ss); - return RSMI_STATUS_NOT_SUPPORTED; - } if (ret != RSMI_STATUS_SUCCESS) { ss << __PRETTY_FUNCTION__ << " | ======= end =======" << ", GetDevValueVec() ret was not RSMI_STATUS_SUCCESS" @@ -4248,6 +4241,11 @@ rsmi_status_string(rsmi_status_t status, const char **status_string) { "counter exceeded INT32_MAX"; break; + case RSMI_STATUS_DIRECTORY_NOT_FOUND: + *status_string = "RSMI_STATUS_DIRECTORY_NOT_FOUND: Error when a " + "directory is not found, maps to ENOTDIR"; + break; + case RSMI_STATUS_SETTING_UNAVAILABLE: *status_string = "RSMI_STATUS_SETTING_UNAVAILABLE: Requested setting is " "unavailable for the current device"; diff --git a/projects/amdsmi/rocm_smi/src/rocm_smi_utils.cc b/projects/amdsmi/rocm_smi/src/rocm_smi_utils.cc index 3eb9e9fec9..4863e59c6d 100644 --- a/projects/amdsmi/rocm_smi/src/rocm_smi_utils.cc +++ b/projects/amdsmi/rocm_smi/src/rocm_smi_utils.cc @@ -327,18 +327,19 @@ GetDevBinaryBlob(amd::smi::DevInfoTypes type, rsmi_status_t ErrnoToRsmiStatus(int err) { switch (err) { - case 0: return RSMI_STATUS_SUCCESS; - case ESRCH: return RSMI_STATUS_NOT_FOUND; - case EACCES: return RSMI_STATUS_PERMISSION; + case 0: return RSMI_STATUS_SUCCESS; + case ESRCH: return RSMI_STATUS_NOT_FOUND; + case EACCES: return RSMI_STATUS_PERMISSION; case EPERM: - case ENOENT: return RSMI_STATUS_NOT_SUPPORTED; + case ENOENT: return RSMI_STATUS_NOT_SUPPORTED; case EBADF: - case EISDIR: return RSMI_STATUS_FILE_ERROR; - case EINTR: return RSMI_STATUS_INTERRUPT; - case EIO: return RSMI_STATUS_UNEXPECTED_SIZE; - case ENXIO: return RSMI_STATUS_UNEXPECTED_DATA; - case EBUSY: return RSMI_STATUS_BUSY; - case EINVAL: return RSMI_STATUS_INVALID_ARGS; + case EISDIR: return RSMI_STATUS_FILE_ERROR; + case EINTR: return RSMI_STATUS_INTERRUPT; + case EIO: return RSMI_STATUS_UNEXPECTED_SIZE; + case ENXIO: return RSMI_STATUS_UNEXPECTED_DATA; + case EBUSY: return RSMI_STATUS_BUSY; + case EINVAL: return RSMI_STATUS_INVALID_ARGS; + case ENOTDIR: return RSMI_STATUS_DIRECTORY_NOT_FOUND; default: return RSMI_STATUS_UNKNOWN_ERROR; } } diff --git a/projects/amdsmi/src/amd_smi/amd_smi.cc b/projects/amdsmi/src/amd_smi/amd_smi.cc index 104eca1c1d..a49c66b242 100644 --- a/projects/amdsmi/src/amd_smi/amd_smi.cc +++ b/projects/amdsmi/src/amd_smi/amd_smi.cc @@ -262,6 +262,10 @@ amdsmi_status_code_to_string(amdsmi_status_t status, const char **status_string) *status_string = "AMDSMI_STATUS_REFCOUNT_OVERFLOW: An internal reference" " counter exceeded INT32_MAX."; break; + case AMDSMI_STATUS_DIRECTORY_NOT_FOUND: + *status_string = "AMDSMI_STATUS_DIRECTORY_NOT_FOUND: Error when a" + " directory is not found, maps to ENOTDIR."; + break; case AMDSMI_STATUS_BUSY: *status_string = "AMDSMI_STATUS_BUSY: Processor busy."; break;