[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>
Este commit está contenido en:
Poag, Charis
2025-08-05 20:44:28 -05:00
cometido por GitHub
padre abd3c02a3c
commit d24dc7ef89
Se han modificado 16 ficheros con 653 adiciones y 251 borrados
+9 -7
Ver fichero
@@ -23,12 +23,12 @@ jobs:
- ${{ vars.RUNNER_TYPE }}
continue-on-error: true
strategy:
max-parallel: 10
max-parallel: 10 # This can be in parallel, since no tests are running (see comment about driver reloads)
matrix:
os: [Ubuntu20, Ubuntu22, Debian10]
container:
image: ${{ vars[format('{0}_DOCKER_IMAGE', matrix.os)] }}
options: --privileged
options: --privileged --cap-add=SYS_MODULE -v /lib/modules:/lib/modules
steps:
- uses: actions/checkout@v4
@@ -137,11 +137,12 @@ jobs:
- ${{ vars.RUNNER_TYPE }}
continue-on-error: true
strategy:
max-parallel: 1 # Need to tests to run one-at-a-time to avoid conflicts with driver reloads
matrix:
os: [Ubuntu20, Ubuntu22, Debian10]
container:
image: ${{ vars[format('{0}_DOCKER_IMAGE', matrix.os)] }}
options: --privileged
options: --privileged --cap-add=SYS_MODULE -v /lib/modules:/lib/modules
steps:
- uses: actions/checkout@v4
@@ -358,7 +359,7 @@ jobs:
- ${{ vars.RUNNER_TYPE }}
continue-on-error: true
strategy:
max-parallel: 10
max-parallel: 10 # This can be in parallel, since no tests are running (see comment about driver reloads)
matrix:
os:
- SLES
@@ -369,7 +370,7 @@ jobs:
- AlmaLinux8
container:
image: ${{ vars[format('{0}_DOCKER_IMAGE', matrix.os)] }}
options: --privileged
options: --privileged --cap-add=SYS_MODULE -v /lib/modules:/lib/modules
steps:
- uses: actions/checkout@v4
@@ -554,12 +555,13 @@ jobs:
rpm-test:
name: Tests
needs: rpm-buildinstall
needs: [rpm-buildinstall, debian-test] # debian-test is needed to complete before rpm-test starts (see comment about driver reloads)
runs-on:
- self-hosted
- ${{ vars.RUNNER_TYPE }}
continue-on-error: true
strategy:
max-parallel: 1 # Need to tests to run one-at-a-time to avoid conflicts with driver reloads
matrix:
os:
- SLES
@@ -570,7 +572,7 @@ jobs:
- AlmaLinux8
container:
image: ${{ vars[format('{0}_DOCKER_IMAGE', matrix.os)] }}
options: --privileged
options: --privileged --cap-add=SYS_MODULE -v /lib/modules:/lib/modules
steps:
- uses: actions/checkout@v4