mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 10:31:33 -04:00
drm/amdgpu: Clarify name of soft recovery to avoid confusion
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. Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
6e8a3c24bd
commit
73826ae3cb
@@ -305,7 +305,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 */
|
||||
|
||||
|
||||
@@ -6899,7 +6899,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;
|
||||
}
|
||||
@@ -6915,8 +6915,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 ");
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user