diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4132-drm-amdgpu-Fix-tdr3-could-hang-with-slow-compute-iss.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4132-drm-amdgpu-Fix-tdr3-could-hang-with-slow-compute-iss.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4132-drm-amdgpu-Fix-tdr3-could-hang-with-slow-compute-iss.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4132-drm-amdgpu-Fix-tdr3-could-hang-with-slow-compute-iss.patch new file mode 100644 index 00000000..6813b358 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4132-drm-amdgpu-Fix-tdr3-could-hang-with-slow-compute-iss.patch @@ -0,0 +1,53 @@ +From bacf25c006ff8772febc7f022976b07bd2b31882 Mon Sep 17 00:00:00 2001 +From: Emily Deng <Emily.Deng@amd.com> +Date: Tue, 15 Oct 2019 10:08:22 +0800 +Subject: [PATCH 4132/4736] drm/amdgpu: Fix tdr3 could hang with slow compute + issue + +When index is 1, need to set compute ring timeout for sriov and passthrough. + +Signed-off-by: Emily Deng <Emily.Deng@amd.com> +Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 5 ++++- + drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 6 ++++-- + 2 files changed, 8 insertions(+), 3 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +index 1b972f531740..521af22ad916 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +@@ -2622,8 +2622,11 @@ static int amdgpu_device_get_job_timeout_settings(struct amdgpu_device *adev) + * There is only one value specified and + * it should apply to all non-compute jobs. + */ +- if (index == 1) ++ if (index == 1) { + adev->sdma_timeout = adev->video_timeout = adev->gfx_timeout; ++ if (amdgpu_sriov_vf(adev) || amdgpu_passthrough(adev)) ++ adev->compute_timeout = adev->gfx_timeout; ++ } + } + + return ret; +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +index 9ca74f242fd1..658fa3fd5fad 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +@@ -252,9 +252,11 @@ module_param_named(msi, amdgpu_msi, int, 0444); + * By default(with no lockup_timeout settings), the timeout for all non-compute(GFX, SDMA and Video) + * jobs is 10000. And there is no timeout enforced on compute jobs. + */ +-MODULE_PARM_DESC(lockup_timeout, "GPU lockup timeout in ms (default: 10000 for non-compute jobs and infinity timeout for compute jobs." ++MODULE_PARM_DESC(lockup_timeout, "GPU lockup timeout in ms (default: for bare metal 10000 for non-compute jobs and infinity timeout for compute jobs; " ++ "for passthrough or sriov, 10000 for all jobs." + " 0: keep default value. negative: infinity timeout), " +- "format is [Non-Compute] or [GFX,Compute,SDMA,Video]"); ++ "format: for bare metal [Non-Compute] or [GFX,Compute,SDMA,Video]; " ++ "for passthrough or sriov [all jobs] or [GFX,Compute,SDMA,Video]."); + module_param_string(lockup_timeout, amdgpu_lockup_timeout, sizeof(amdgpu_lockup_timeout), 0444); + + /** +-- +2.17.1 + |