[PATCH 2/2] drm/amdgpu: add an auto setting to the noretry parameter
Luben Tuikov
luben.tuikov at amd.com
Wed Sep 23 14:48:02 UTC 2020
Series is Reviewed-by: Luben Tuikov <luben.tuikov at amd.com>
This is a good change!
Regards,
Luben
On 2020-09-23 10:08, Alex Deucher wrote:
> This allows us to set different defaults on a per asic basis. This
> way we can enable noretry on dGPUs where it can increase performance
> in certain cases and disable it on chips where it can be problematic.
>
> For now the default is 0 for all asics, but we may want to try and
> enable it again for newer dGPUs.
>
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 9 +++++++--
> drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 26 ++++++++++++++++++++++++-
> 2 files changed, 32 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> index a4b518211b1f..f3e2fbcfadfb 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> @@ -147,7 +147,7 @@ int amdgpu_async_gfx_ring = 1;
> int amdgpu_mcbp = 0;
> int amdgpu_discovery = -1;
> int amdgpu_mes = 0;
> -int amdgpu_noretry;
> +int amdgpu_noretry = -1;
> int amdgpu_force_asic_type = -1;
> int amdgpu_tmz = 0;
> int amdgpu_reset_method = -1; /* auto */
> @@ -596,8 +596,13 @@ MODULE_PARM_DESC(mes,
> "Enable Micro Engine Scheduler (0 = disabled (default), 1 = enabled)");
> module_param_named(mes, amdgpu_mes, int, 0444);
>
> +/**
> + * DOC: noretry (int)
> + * Disable retry faults in the GPU memory controller.
> + * (0 = retry enabled, 1 = retry disabled, -1 auto (default))
> + */
> MODULE_PARM_DESC(noretry,
> - "Disable retry faults (0 = retry enabled (default), 1 = retry disabled)");
> + "Disable retry faults (0 = retry enabled, 1 = retry disabled, -1 auto (default))");
> module_param_named(noretry, amdgpu_noretry, int, 0644);
>
> /**
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> index 3572629fef0a..36604d751d62 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> @@ -424,7 +424,31 @@ void amdgpu_gmc_noretry_set(struct amdgpu_device *adev)
> {
> struct amdgpu_gmc *gmc = &adev->gmc;
>
> - gmc->noretry = amdgpu_noretry;
> + switch (adev->asic_type) {
> + case CHIP_RAVEN:
> + /* Raven currently has issues with noretry
> + * regardless of what we decide for other
> + * asics, we should leave raven with
> + * noretry = 0 until we root cause the
> + * issues.
> + */
> + if (amdgpu_noretry == -1)
> + gmc->noretry = 0;
> + else
> + gmc->noretry = amdgpu_noretry;
> + break;
> + default:
> + /* default this to 0 for now, but we may want
> + * to change this in the future for certain
> + * GPUs as it can increase performance in
> + * certain cases.
> + */
> + if (amdgpu_noretry == -1)
> + gmc->noretry = 0;
> + else
> + gmc->noretry = amdgpu_noretry;
> + break;
> + }
> }
>
> void amdgpu_gmc_set_vm_fault_masks(struct amdgpu_device *adev, int hub_type,
>
More information about the amd-gfx
mailing list