Add support for get and set APIs for CPUISOFreqPolicy and DFCState Co… (#1901)
* Add support for get and set APIs for CPUISOFreqPolicy and DFCState Control
- Add support for get and set APIs for CPUISOFreqPolicy and DFCState Control
in AMD SMI and also in the CLI tool
* CHANGELOG.md file updated
* SWDEV-562837: Update amdsmi-py-api.md as per the new APIs
Updated amdsmi-py-api.md as per the new APIs added.
---------
Signed-off-by: Soumya <sranjanr@amd.com>
Signed-off-by: gabrpham <Gabriel.Pham@amd.com>
Co-authored-by: Saka Sitharammurthy <SitharamMurthy.Saka@amd.com>
This commit is contained in:
committed by
GitHub
parent
6c98c49362
commit
c6b7448227
@@ -81,6 +81,10 @@ try:
|
||||
from .amdsmi_interface import amdsmi_get_cpu_model
|
||||
from .amdsmi_interface import amdsmi_get_cpu_model_name
|
||||
from .amdsmi_interface import amdsmi_get_cpu_handles
|
||||
from .amdsmi_interface import amdsmi_get_dfc_ctrl
|
||||
from .amdsmi_interface import amdsmi_set_dfc_ctrl
|
||||
from .amdsmi_interface import amdsmi_get_cpu_rail_isofreq_policy
|
||||
from .amdsmi_interface import amdsmi_set_cpu_rail_isofreq_policy
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
|
||||
@@ -1788,6 +1788,63 @@ def amdsmi_get_hsmp_metrics_table_version(
|
||||
|
||||
return metric_tbl_version.value
|
||||
|
||||
def amdsmi_set_cpu_rail_isofreq_policy(
|
||||
processor_handle: processor_handle_t,
|
||||
value: int):
|
||||
if not isinstance(processor_handle, amdsmi_wrapper.amdsmi_processor_handle):
|
||||
raise AmdSmiParameterException(
|
||||
processor_handle, amdsmi_wrapper.amdsmi_processor_handle
|
||||
)
|
||||
|
||||
_check_res(
|
||||
amdsmi_wrapper.amdsmi_set_cpu_rail_isofreq_policy(processor_handle, value)
|
||||
)
|
||||
|
||||
def amdsmi_get_cpu_rail_isofreq_policy(
|
||||
processor_handle: processor_handle_t,
|
||||
) -> int:
|
||||
if not isinstance(processor_handle, amdsmi_wrapper.amdsmi_processor_handle):
|
||||
raise AmdSmiParameterException(
|
||||
processor_handle, amdsmi_wrapper.amdsmi_processor_handle
|
||||
)
|
||||
|
||||
cpurailiso = ctypes.c_uint8()
|
||||
_check_res(
|
||||
amdsmi_wrapper.amdsmi_get_cpu_rail_isofreq_policy(
|
||||
processor_handle, ctypes.byref(cpurailiso)
|
||||
)
|
||||
)
|
||||
|
||||
return cpurailiso.value
|
||||
|
||||
def amdsmi_get_dfc_ctrl(
|
||||
processor_handle: processor_handle_t,
|
||||
) -> int:
|
||||
if not isinstance(processor_handle, amdsmi_wrapper.amdsmi_processor_handle):
|
||||
raise AmdSmiParameterException(
|
||||
processor_handle, amdsmi_wrapper.amdsmi_processor_handle
|
||||
)
|
||||
|
||||
dfc_ctrl = ctypes.c_uint8()
|
||||
_check_res(
|
||||
amdsmi_wrapper.amdsmi_get_dfc_ctrl(
|
||||
processor_handle, ctypes.byref(dfc_ctrl)
|
||||
)
|
||||
)
|
||||
|
||||
return dfc_ctrl.value
|
||||
|
||||
def amdsmi_set_dfc_ctrl(
|
||||
processor_handle: processor_handle_t,
|
||||
value: int):
|
||||
if not isinstance(processor_handle, amdsmi_wrapper.amdsmi_processor_handle):
|
||||
raise AmdSmiParameterException(
|
||||
processor_handle, amdsmi_wrapper.amdsmi_processor_handle
|
||||
)
|
||||
|
||||
_check_res(
|
||||
amdsmi_wrapper.amdsmi_set_dfc_ctrl(processor_handle, value)
|
||||
)
|
||||
|
||||
# Get 2's complement of 32 bit unsigned integer
|
||||
def check_msb_32(num):
|
||||
|
||||
@@ -3248,6 +3248,18 @@ amdsmi_get_cpu_cores_per_socket.argtypes = [uint32_t, ctypes.POINTER(struct_amds
|
||||
amdsmi_get_cpu_socket_count = _libraries['libamd_smi.so'].amdsmi_get_cpu_socket_count
|
||||
amdsmi_get_cpu_socket_count.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_socket_count.argtypes = [ctypes.POINTER(ctypes.c_uint32)]
|
||||
amdsmi_set_cpu_rail_isofreq_policy = _libraries['libamd_smi.so'].amdsmi_set_cpu_rail_isofreq_policy
|
||||
amdsmi_set_cpu_rail_isofreq_policy.restype = amdsmi_status_t
|
||||
amdsmi_set_cpu_rail_isofreq_policy.argtypes = [amdsmi_processor_handle, uint8_t]
|
||||
amdsmi_get_cpu_rail_isofreq_policy = _libraries['libamd_smi.so'].amdsmi_get_cpu_rail_isofreq_policy
|
||||
amdsmi_get_cpu_rail_isofreq_policy.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_rail_isofreq_policy.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint8)]
|
||||
amdsmi_set_dfc_ctrl = _libraries['libamd_smi.so'].amdsmi_set_dfc_ctrl
|
||||
amdsmi_set_dfc_ctrl.restype = amdsmi_status_t
|
||||
amdsmi_set_dfc_ctrl.argtypes = [amdsmi_processor_handle, ctypes.c_bool]
|
||||
amdsmi_get_dfc_ctrl = _libraries['libamd_smi.so'].amdsmi_get_dfc_ctrl
|
||||
amdsmi_get_dfc_ctrl.restype = amdsmi_status_t
|
||||
amdsmi_get_dfc_ctrl.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint8)]
|
||||
__all__ = \
|
||||
['AGG_BW0', 'AMDSMI_ACCELERATOR_DECODER',
|
||||
'AMDSMI_ACCELERATOR_DMA', 'AMDSMI_ACCELERATOR_ENCODER',
|
||||
@@ -3585,8 +3597,9 @@ __all__ = \
|
||||
'amdsmi_get_cpu_socket_power', 'amdsmi_get_cpu_socket_power_cap',
|
||||
'amdsmi_get_cpu_socket_power_cap_max',
|
||||
'amdsmi_get_cpu_socket_temperature', 'amdsmi_get_cpucore_handles',
|
||||
'amdsmi_get_cpusocket_handles', 'amdsmi_get_energy_count',
|
||||
'amdsmi_get_esmi_err_msg', 'amdsmi_get_fw_info',
|
||||
'amdsmi_get_energy_count', 'amdsmi_get_esmi_err_msg',
|
||||
'amdsmi_get_fw_info', 'amdsmi_get_dfc_ctrl', 'amdsmi_set_dfc_ctrl',
|
||||
'amdsmi_get_cpu_rail_isofreq_policy', 'amdsmi_set_cpu_rail_isofreq_policy',
|
||||
'amdsmi_get_gpu_accelerator_partition_profile',
|
||||
'amdsmi_get_gpu_accelerator_partition_profile_config',
|
||||
'amdsmi_get_gpu_activity', 'amdsmi_get_gpu_asic_info',
|
||||
|
||||
Reference in New Issue
Block a user