SWDEV-441635: Updated amdsmi_get_utilization_count python API

Signed-off-by: Maisam Arif <maisarif@amd.com>
Change-Id: I588e1a61e000d9a5f77f0e8c63f4fef1ec76063e
This commit is contained in:
Maisam Arif
2024-01-24 02:09:00 -06:00
parent ee80c2cac4
commit 1ed5080433
2 changed files with 15 additions and 13 deletions
+10 -10
View File
@@ -21,8 +21,8 @@
import ctypes
import re
from typing import Union, Any, Dict, List, Tuple
from enum import IntEnum, Enum
from typing import Union, Any, Dict, List
from enum import IntEnum
from collections.abc import Iterable
from . import amdsmi_wrapper
@@ -348,7 +348,8 @@ class AmdSmiIoLinkType(IntEnum):
class AmdSmiUtilizationCounterType(IntEnum):
COARSE_GRAIN_GFX_ACTIVITY = amdsmi_wrapper.AMDSMI_COARSE_GRAIN_GFX_ACTIVITY
COARSE_GRAIN_MEM_ACTIVITY = amdsmi_wrapper.AMDSMI_COARSE_GRAIN_MEM_ACTIVITY
UTILIZATION_COUNTER_FIRST = amdsmi_wrapper.AMDSMI_UTILIZATION_COUNTER_FIRST
UTILIZATION_COUNTER_LAST = amdsmi_wrapper.AMDSMI_UTILIZATION_COUNTER_LAST
class AmdSmiProcessorType(IntEnum):
UNKNOWN = amdsmi_wrapper.UNKNOWN
@@ -3071,16 +3072,15 @@ def amdsmi_get_gpu_volt_metric(
return voltage.value
def amdsmi_get_utilization_count(
processor_handle: amdsmi_wrapper.amdsmi_processor_handle,
*counter_types: Tuple[AmdSmiUtilizationCounterType]
counter_types: List[AmdSmiUtilizationCounterType]
) -> List[Dict[str, Any]]:
if not isinstance(processor_handle, amdsmi_wrapper.amdsmi_processor_handle):
raise AmdSmiParameterException(
processor_handle, amdsmi_wrapper.amdsmi_processor_handle
)
if not len(counter_types):
if len(counter_types) == 0:
raise AmdSmiLibraryException(amdsmi_wrapper.AMDSMI_STATUS_INVAL)
counters = []
for counter_type in counter_types:
@@ -3093,9 +3093,7 @@ def amdsmi_get_utilization_count(
count = ctypes.c_uint32(len(counters))
timestamp = ctypes.c_uint64()
util_counter_list = (amdsmi_wrapper.amdsmi_utilization_counter_t * len(counters))(
*counters
)
util_counter_list = (amdsmi_wrapper.amdsmi_utilization_counter_t * len(counters))(*counters)
_check_res(
amdsmi_wrapper.amdsmi_get_utilization_count(
@@ -3107,9 +3105,11 @@ def amdsmi_get_utilization_count(
result = [{"timestamp": timestamp.value}]
for idx in range(count.value):
counter_type = amdsmi_wrapper.AMDSMI_UTILIZATION_COUNTER_TYPE__enumvalues[
counter_type = amdsmi_wrapper.amdsmi_utilization_counter_type_t__enumvalues[
util_counter_list[idx].type
]
if counter_type == "AMDSMI_UTILIZATION_COUNTER_FIRST":
counter_type = "AMDSMI_COARSE_GRAIN_GPU_ACTIVITY"
if counter_type == "AMDSMI_UTILIZATION_COUNTER_LAST":
counter_type = "AMDSMI_COARSE_GRAIN_MEM_ACTIVITY"
result.append(
+5 -3
View File
@@ -1319,8 +1319,8 @@ amdsmi_io_link_type_t = ctypes.c_uint32 # enum
amdsmi_utilization_counter_type_t__enumvalues = {
0: 'AMDSMI_UTILIZATION_COUNTER_FIRST',
0: 'AMDSMI_COARSE_GRAIN_GFX_ACTIVITY',
1: 'AMDSMI_COARSE_GRAIN_MEM_ACTIVITY',
1: 'AMDSMI_UTILIZATION_COUNTER_LAST',
1: 'AMDSMI_COARSE_GRAIN_MEM_ACTIVITY',
}
AMDSMI_UTILIZATION_COUNTER_FIRST = 0
AMDSMI_COARSE_GRAIN_GFX_ACTIVITY = 0
@@ -1911,7 +1911,7 @@ amdsmi_set_gpu_fan_speed.restype = amdsmi_status_t
amdsmi_set_gpu_fan_speed.argtypes = [amdsmi_processor_handle, uint32_t, uint64_t]
amdsmi_get_utilization_count = _libraries['libamd_smi.so'].amdsmi_get_utilization_count
amdsmi_get_utilization_count.restype = amdsmi_status_t
amdsmi_get_utilization_count.argtypes = [amdsmi_processor_handle, struct_amdsmi_utilization_counter_t * 0, uint32_t, ctypes.POINTER(ctypes.c_uint64)]
amdsmi_get_utilization_count.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_utilization_counter_t), uint32_t, ctypes.POINTER(ctypes.c_uint64)]
amdsmi_get_pcie_link_status = _libraries['libamd_smi.so'].amdsmi_get_pcie_link_status
amdsmi_get_pcie_link_status.restype = amdsmi_status_t
amdsmi_get_pcie_link_status.argtypes = [amdsmi_processor_handle, ctypes.POINTER(struct_amdsmi_pcie_info_t)]
@@ -2499,7 +2499,9 @@ __all__ = \
'AMDSMI_TEMP_MAX', 'AMDSMI_TEMP_MAX_HYST', 'AMDSMI_TEMP_MIN',
'AMDSMI_TEMP_MIN_HYST', 'AMDSMI_TEMP_OFFSET',
'AMDSMI_UTILIZATION_COUNTER_FIRST',
'AMDSMI_UTILIZATION_COUNTER_LAST', 'AMDSMI_VOLT_AVERAGE',
'AMDSMI_COARSE_GRAIN_GFX_ACTIVITY',
'AMDSMI_UTILIZATION_COUNTER_LAST',
'AMDSMI_COARSE_GRAIN_MEM_ACTIVITY', 'AMDSMI_VOLT_AVERAGE',
'AMDSMI_VOLT_CURRENT', 'AMDSMI_VOLT_FIRST', 'AMDSMI_VOLT_HIGHEST',
'AMDSMI_VOLT_LAST', 'AMDSMI_VOLT_LOWEST', 'AMDSMI_VOLT_MAX',
'AMDSMI_VOLT_MAX_CRIT', 'AMDSMI_VOLT_MIN', 'AMDSMI_VOLT_MIN_CRIT',