[SWDEV-518561] Separate Driver Reload from Memory Partition Sets (#582)
Description: - Added a new API `amdsmi_gpu_driver_reload()` to reload the AMD GPU driver independently. - Updated CLI (`sudo amd-smi reset -r`) and Python bindings to support driver reload functionality. - Removed automatic driver reload from `amdsmi_set_gpu_memory_partition()` and `amdsmi_set_gpu_memory_partition_mode()`. - Enhanced CLI and test cases to allow users to control when the driver reload occurs. - Updated documentation and changelog to reflect the new driver reload process. - Improved error handling and logging for driver reload operations. - Added progress bar and user confirmation prompts for driver reload commands. * Update build/test strategy to only allow one test execution at a time * Modify API verbage + modify systemctl error output - Systemctl is typically not enabled on docker. - And is an edge case for gpu being active process/etc for display devices. * Remove AMDSMI_STATUS_AMDGPU_RESTART_ERR from the return values * Move driver reload to after we save original compute partitions --------- Signed-off-by: Charis Poag <Charis.Poag@amd.com>
This commit is contained in:
@@ -144,6 +144,7 @@ from .amdsmi_interface import amdsmi_set_gpu_od_volt_info
|
||||
from .amdsmi_interface import amdsmi_set_gpu_perf_level
|
||||
from .amdsmi_interface import amdsmi_get_gpu_power_profile_presets
|
||||
from .amdsmi_interface import amdsmi_reset_gpu
|
||||
from .amdsmi_interface import amdsmi_gpu_driver_reload
|
||||
from .amdsmi_interface import amdsmi_set_gpu_perf_determinism_mode
|
||||
from .amdsmi_interface import amdsmi_set_gpu_fan_speed
|
||||
from .amdsmi_interface import amdsmi_reset_gpu_fan
|
||||
|
||||
@@ -3721,6 +3721,9 @@ def amdsmi_reset_gpu(processor_handle: processor_handle):
|
||||
|
||||
_check_res(amdsmi_wrapper.amdsmi_reset_gpu(processor_handle))
|
||||
|
||||
def amdsmi_gpu_driver_reload():
|
||||
_check_res(amdsmi_wrapper.amdsmi_gpu_driver_reload())
|
||||
|
||||
|
||||
def amdsmi_set_gpu_fan_speed(
|
||||
processor_handle: processor_handle, sensor_idx: int, fan_speed: int
|
||||
|
||||
@@ -2934,6 +2934,9 @@ amdsmi_get_violation_status.argtypes = [amdsmi_processor_handle, ctypes.POINTER(
|
||||
amdsmi_get_gpu_process_list = _libraries['libamd_smi.so'].amdsmi_get_gpu_process_list
|
||||
amdsmi_get_gpu_process_list.restype = amdsmi_status_t
|
||||
amdsmi_get_gpu_process_list.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint32), ctypes.POINTER(struct_amdsmi_proc_info_t)]
|
||||
amdsmi_gpu_driver_reload = _libraries['libamd_smi.so'].amdsmi_gpu_driver_reload
|
||||
amdsmi_gpu_driver_reload.restype = amdsmi_status_t
|
||||
amdsmi_gpu_driver_reload.argtypes = []
|
||||
amdsmi_get_cpu_core_energy = _libraries['libamd_smi.so'].amdsmi_get_cpu_core_energy
|
||||
amdsmi_get_cpu_core_energy.restype = amdsmi_status_t
|
||||
amdsmi_get_cpu_core_energy.argtypes = [amdsmi_processor_handle, ctypes.POINTER(ctypes.c_uint64)]
|
||||
@@ -3446,13 +3449,14 @@ __all__ = \
|
||||
'amdsmi_get_xgmi_plpd', 'amdsmi_gpu_block_t',
|
||||
'amdsmi_gpu_cache_info_t', 'amdsmi_gpu_control_counter',
|
||||
'amdsmi_gpu_counter_group_supported', 'amdsmi_gpu_create_counter',
|
||||
'amdsmi_gpu_destroy_counter', 'amdsmi_gpu_metrics_t',
|
||||
'amdsmi_gpu_read_counter', 'amdsmi_gpu_validate_ras_eeprom',
|
||||
'amdsmi_gpu_xcp_metrics_t', 'amdsmi_gpu_xgmi_error_status',
|
||||
'amdsmi_hsmp_driver_version_t', 'amdsmi_hsmp_freqlimit_src_names',
|
||||
'amdsmi_hsmp_metrics_table_t', 'amdsmi_init',
|
||||
'amdsmi_init_flags_t', 'amdsmi_init_gpu_event_notification',
|
||||
'amdsmi_io_bw_encoding_t', 'amdsmi_is_P2P_accessible',
|
||||
'amdsmi_gpu_destroy_counter', 'amdsmi_gpu_driver_reload',
|
||||
'amdsmi_gpu_metrics_t', 'amdsmi_gpu_read_counter',
|
||||
'amdsmi_gpu_validate_ras_eeprom', 'amdsmi_gpu_xcp_metrics_t',
|
||||
'amdsmi_gpu_xgmi_error_status', 'amdsmi_hsmp_driver_version_t',
|
||||
'amdsmi_hsmp_freqlimit_src_names', 'amdsmi_hsmp_metrics_table_t',
|
||||
'amdsmi_init', 'amdsmi_init_flags_t',
|
||||
'amdsmi_init_gpu_event_notification', 'amdsmi_io_bw_encoding_t',
|
||||
'amdsmi_is_P2P_accessible',
|
||||
'amdsmi_is_gpu_power_management_enabled', 'amdsmi_kfd_info_t',
|
||||
'amdsmi_link_id_bw_type_t', 'amdsmi_link_metrics_t',
|
||||
'amdsmi_link_type_t', 'amdsmi_memory_page_status_t',
|
||||
|
||||
Reference in New Issue
Block a user