Soft recovery is not the same as soft reset:

* Soft recovery attempts to resolve a GPU hang by sending a
  command to terminate shaders.
* Soft reset completely re-initializes an entire device IP block,
  which may affect multiple rings and jobs at the same time.

Signed-off-by: Timur Kristóf <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu.h        | 2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 6 +++---
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c    | 2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_job.c    | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 5d7bfa59424a..cb4fa9c111eb 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -304,7 +304,7 @@ extern uint amdgpu_hdmi_hpd_debounce_delay_ms;
 
 /* reset mask */
 #define AMDGPU_RESET_TYPE_FULL (1 << 0) /* full adapter reset, 
mode1/mode2/BACO/etc. */
-#define AMDGPU_RESET_TYPE_SOFT_RESET (1 << 1) /* IP level soft reset */
+#define AMDGPU_RESET_TYPE_SOFT_RECOVERY (1 << 1) /* soft recovery, eg. kill 
shaders */
 #define AMDGPU_RESET_TYPE_PER_QUEUE (1 << 2) /* per queue */
 #define AMDGPU_RESET_TYPE_PER_PIPE (1 << 3) /* per pipe */
 
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 5ccbe6c885cf..71a6b18ccf23 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -6884,7 +6884,7 @@ ssize_t amdgpu_get_soft_full_reset_mask(struct 
amdgpu_ring *ring)
 
        if (unlikely(!ring->adev->debug_disable_soft_recovery) &&
            !amdgpu_sriov_vf(ring->adev) && ring->funcs->soft_recovery)
-               size |= AMDGPU_RESET_TYPE_SOFT_RESET;
+               size |= AMDGPU_RESET_TYPE_SOFT_RECOVERY;
 
        return size;
 }
@@ -6900,8 +6900,8 @@ ssize_t amdgpu_show_reset_mask(char *buf, uint32_t 
supported_reset)
 
        }
 
-       if (supported_reset & AMDGPU_RESET_TYPE_SOFT_RESET)
-               size += sysfs_emit_at(buf, size, "soft ");
+       if (supported_reset & AMDGPU_RESET_TYPE_SOFT_RECOVERY)
+               size += sysfs_emit_at(buf, size, "soft_recovery ");
 
        if (supported_reset & AMDGPU_RESET_TYPE_PER_QUEUE)
                size += sysfs_emit_at(buf, size, "queue ");
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index 1781c0c3d010..53aa2d438da5 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -2250,7 +2250,7 @@ static void amdgpu_init_debug_options(struct 
amdgpu_device *adev)
        }
 
        if (amdgpu_debug_mask & AMDGPU_DEBUG_DISABLE_GPU_SOFT_RECOVERY) {
-               pr_info("debug: soft reset for GPU recovery disabled\n");
+               pr_info("debug: soft recovery disabled\n");
                adev->debug_disable_soft_recovery = true;
        }
 
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
index 55172c2dcc35..ce3c209a6ba7 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
@@ -112,7 +112,7 @@ static enum drm_gpu_sched_stat amdgpu_job_timedout(struct 
drm_sched_job *s_job)
                amdgpu_job_core_dump(adev, job);
 
        if (amdgpu_gpu_recovery &&
-           amdgpu_ring_is_reset_type_supported(ring, 
AMDGPU_RESET_TYPE_SOFT_RESET) &&
+           amdgpu_ring_is_reset_type_supported(ring, 
AMDGPU_RESET_TYPE_SOFT_RECOVERY) &&
            amdgpu_ring_soft_recovery(ring, job->vmid, s_job->s_fence->parent)) 
{
                dev_err(adev->dev, "ring %s timeout, but soft recovered\n",
                        s_job->sched->name);
-- 
2.54.0

Reply via email to