* [PATCH] drm/amdgpu: Enable default GPU reset for dGPU on gfx8/9. @ 2018-10-22 21:19 Andrey Grodzovsky [not found] ` <1540243172-23222-1-git-send-email-andrey.grodzovsky-5C7GfCeVMHo@public.gmane.org> 0 siblings, 1 reply; 2+ messages in thread From: Andrey Grodzovsky @ 2018-10-22 21:19 UTC (permalink / raw) To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW Cc: Alexander.Deucher-5C7GfCeVMHo, Andrey Grodzovsky After testing looks like this subset of ASICs has GPU reset working for the most part. Enable reset due to job timeout. Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com> --- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index d11489e..75308d2 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -3292,18 +3292,32 @@ static int amdgpu_device_reset_sriov(struct amdgpu_device *adev, */ bool amdgpu_device_should_recover_gpu(struct amdgpu_device *adev) { + struct amdgpu_ip_block *ip_block; + if (!amdgpu_device_ip_check_soft_reset(adev)) { DRM_INFO("Timeout, but no hardware hang detected.\n"); return false; } - if (amdgpu_gpu_recovery == 0 || (amdgpu_gpu_recovery == -1 && - !amdgpu_sriov_vf(adev))) { - DRM_INFO("GPU recovery disabled.\n"); - return false; - } + if (amdgpu_gpu_recovery == 0) + goto disabled; + + if (amdgpu_sriov_vf(adev)) + return true; + + ip_block = amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_GFX); + + if (amdgpu_gpu_recovery == -1 && + ((adev->flags & AMD_IS_APU) || + ip_block->version->major < 8 || + ip_block->version->major > 9)) + goto disabled; return true; + +disabled: + DRM_INFO("GPU recovery disabled.\n"); + return false; } /** -- 2.7.4 _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply related [flat|nested] 2+ messages in thread
[parent not found: <1540243172-23222-1-git-send-email-andrey.grodzovsky-5C7GfCeVMHo@public.gmane.org>]
* Re: [PATCH] drm/amdgpu: Enable default GPU reset for dGPU on gfx8/9. [not found] ` <1540243172-23222-1-git-send-email-andrey.grodzovsky-5C7GfCeVMHo@public.gmane.org> @ 2018-10-22 22:32 ` Alex Deucher 0 siblings, 0 replies; 2+ messages in thread From: Alex Deucher @ 2018-10-22 22:32 UTC (permalink / raw) To: Andrey Grodzovsky; +Cc: Deucher, Alexander, amd-gfx list On Mon, Oct 22, 2018 at 5:20 PM Andrey Grodzovsky <andrey.grodzovsky@amd.com> wrote: > > After testing looks like this subset of ASICs has GPU reset > working for the most part. Enable reset due to job timeout. > > Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 24 +++++++++++++++++++----- > 1 file changed, 19 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > index d11489e..75308d2 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > @@ -3292,18 +3292,32 @@ static int amdgpu_device_reset_sriov(struct amdgpu_device *adev, > */ > bool amdgpu_device_should_recover_gpu(struct amdgpu_device *adev) > { > + struct amdgpu_ip_block *ip_block; > + > if (!amdgpu_device_ip_check_soft_reset(adev)) { > DRM_INFO("Timeout, but no hardware hang detected.\n"); > return false; > } > > - if (amdgpu_gpu_recovery == 0 || (amdgpu_gpu_recovery == -1 && > - !amdgpu_sriov_vf(adev))) { > - DRM_INFO("GPU recovery disabled.\n"); > - return false; > - } > + if (amdgpu_gpu_recovery == 0) > + goto disabled; > + > + if (amdgpu_sriov_vf(adev)) > + return true; > + > + ip_block = amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_GFX); > + > + if (amdgpu_gpu_recovery == -1 && > + ((adev->flags & AMD_IS_APU) || > + ip_block->version->major < 8 || > + ip_block->version->major > 9)) > + goto disabled; I would prefer to tie this to asic_type rather than gfx version. E.g., switch (adev->asic_type) { case CHIP_TOPAZ: case CHIP_TONGA: case CHIP_FIJI: case CHIP_POLARIS10: case CHIP_POLARIS11: case CHIP_POLARIS12: case CHIP_VEGAM: case CHIP_VEGA20: case CHIP_VEGA10: case CHIP_VEGA12: break; default: goto disabled; } Alex > > return true; > + > +disabled: > + DRM_INFO("GPU recovery disabled.\n"); > + return false; > } > > /** > -- > 2.7.4 > > _______________________________________________ > amd-gfx mailing list > amd-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-10-22 22:32 UTC | newest] Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-10-22 21:19 [PATCH] drm/amdgpu: Enable default GPU reset for dGPU on gfx8/9 Andrey Grodzovsky [not found] ` <1540243172-23222-1-git-send-email-andrey.grodzovsky-5C7GfCeVMHo@public.gmane.org> 2018-10-22 22:32 ` Alex Deucher
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.