Fix amdsmi_get_power_info API

This change creates a workaround for a broken C api in amdsmi.

amdsmi_get_power_info API is broken in rocm 6.4.0 (amdsmi 25.2) and is fixed
in rocm 6.4.1 (amdsmi 25.3).

Breaking AMDSMI change:
https://github.com/ROCm/amdsmi/commit/dc4a16da6fb45d581a6e23c78d340172989418a0

Change-Id: Ib45a2702aa722c7735f3ccd1081d8f62e4d34216
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>


[ROCm/rdc commit: 929041b556]
Dieser Commit ist enthalten in:
Galantsev, Dmitrii
2025-03-19 23:24:57 +00:00
committet von Galantsev, Dmitrii
Ursprung 68c02bda78
Commit 791fa376e9
@@ -610,8 +610,14 @@ rdc_status_t RdcMetricFetcherImpl::fetch_smi_field(uint32_t gpu_index, rdc_field
} break;
case RDC_FI_POWER_USAGE: {
amdsmi_power_info_t power_info = {};
uint32_t sensor_ind = 0;
value->status = amdsmi_get_power_info(processor_handle, sensor_ind, &power_info);
// Handle API breaking change in amdsmi commit dc4a16da6fb45d581a6e23c78d340172989418a0
// Breaking change is only in rocm 6.4.0 (amdsmi 25.2)
// It is reverted to old signature in 6.4.1 (amdsmi 25.3)
#if (((AMDSMI_LIB_VERSION_MAJOR) == 25) && ((AMDSMI_LIB_VERSION_MINOR) == 2))
value->status = amdsmi_get_power_info(processor_handle, 0, &power_info);
#else
value->status = amdsmi_get_power_info(processor_handle, &power_info);
#endif
value->type = INTEGER;
if (value->status != AMDSMI_STATUS_SUCCESS) {
RDC_LOG(RDC_ERROR, "amdsmi_get_power_info failed!");