Merge amd-staging into amd-master 20230710

Signed-off-by: Hao Zhou <Hao.Zhou@amd.com>
Change-Id: I213f4f064b94187a9d157e51fb09c3051a26a449
Этот коммит содержится в:
Hao Zhou
2023-07-10 11:11:02 +08:00
родитель 048523cd34 7b107258ff
Коммит 129bee2bfb
3 изменённых файлов: 22 добавлений и 17 удалений
+10 -5
Просмотреть файл
@@ -3390,16 +3390,21 @@ amdsmi_get_gpu_vram_usage(amdsmi_processor_handle processor_handle, amdsmi_vram_
/**
* @brief Returns the list of processes running on a given GPU including itself.
*
* @note The user provides a buffer to store the list and the
* maximum number of processes that can be returned. If the user
* sets max_processes to 0, the total number of processes will be
* returned.
* @note The user provides a buffer to store the list and the maximum
* number of processes that can be returned. If the user sets
* max_processes to 0, the current total number of processes will
* replace max_processes param. After that, the function needs to be
* called again, with updated max_processes, to successfully fill the
* process list, which was previously allocated with max_processes
*
* @param[in] processor_handle Device which to query
*
* @param[in,out] max_processes Reference to the size of the list buffer in
* number of elements. Returns the return number of elements
* in list or the number of running processes if equal to 0.
* in list or the number of running processes if equal to 0,
* and if given value in param max_processes is less than
* number of processes currently running,
* AMDSMI_STATUS_OUT_OF_RESOURCES will be returned.
*
* @param[out] list Reference to a user-provided buffer where the process
* list will be returned. This buffer must contain at least
+5 -9
Просмотреть файл
@@ -28,6 +28,8 @@ from collections.abc import Iterable
from . import amdsmi_wrapper
from .amdsmi_exception import *
MAX_NUM_PROCESSES = 1024
class AmdSmiInitFlags(IntEnum):
INIT_ALL_PROCESSORS = amdsmi_wrapper.AMDSMI_INIT_ALL_PROCESSORS
INIT_AMD_CPUS = amdsmi_wrapper.AMDSMI_INIT_AMD_CPUS
@@ -845,14 +847,7 @@ def amdsmi_get_gpu_process_list(
processor_handle, amdsmi_wrapper.amdsmi_processor_handle
)
max_processes = ctypes.c_uint32(0)
process_list = (amdsmi_wrapper.amdsmi_process_handle_t *
max_processes.value)()
_check_res(
amdsmi_wrapper.amdsmi_get_gpu_process_list(
processor_handle, ctypes.byref(max_processes), process_list
)
)
max_processes = ctypes.c_uint32(MAX_NUM_PROCESSES)
process_list = (amdsmi_wrapper.amdsmi_process_handle_t *
max_processes.value)()
@@ -862,7 +857,8 @@ def amdsmi_get_gpu_process_list(
)
)
return [amdsmi_wrapper.amdsmi_process_handle_t(x) for x in list(process_list)]
return [amdsmi_wrapper.amdsmi_process_handle_t(process_list[x])\
for x in range(0, max_processes.value)]
def amdsmi_get_gpu_process_info(
+7 -3
Просмотреть файл
@@ -367,17 +367,19 @@ Monitor::setVoltSensorLabelMap(void) {
}
auto add_volt_sensor_entry = [&](uint32_t file_index) {
ret = readMonitor(kMonVoltLabel, file_index, &type_str);
rsmi_voltage_type_t t_type = kVoltSensorNameMap.at(type_str);
rsmi_voltage_type_t t_type;
// If readMonitor fails, there is no label file for the file_index.
// In that case, map the type to file index 0, which is not supported
// and will fail appropriately later when we check for support.
if (ret) {
volt_type_index_map_.insert({t_type, 0});
index_volt_type_map_.insert({file_index, RSMI_VOLT_TYPE_INVALID});
} else {
volt_type_index_map_.insert({t_type, file_index});
t_type = kVoltSensorNameMap.at(type_str);
volt_type_index_map_[t_type] = file_index;
index_volt_type_map_.insert({file_index, t_type});
}
return 0;
};
@@ -463,6 +465,8 @@ Monitor::getVoltSensorIndex(rsmi_voltage_type_t type) {
rsmi_voltage_type_t
Monitor::getVoltSensorEnum(uint64_t ind) {
// check if ind is a key or not
if (index_volt_type_map_.count(ind) == 0) return RSMI_VOLT_TYPE_INVALID;
return index_volt_type_map_.at(ind);
}