[PATCH] drm/amdgpu: remove switch from amdgpu_gmc_noretry_set

Alex Deucher alexdeucher at gmail.com
Wed Sep 28 19:03:23 UTC 2022


On Wed, Sep 28, 2022 at 11:22 AM Graham Sider <Graham.Sider at amd.com> wrote:
>
> Simplify the logic in amdgpu_gmc_noretry_set by getting rid of the
> switch. Also set noretry=1 as default for GFX 10.3.0 and greater since
> retry faults are not supported.
>
> Signed-off-by: Graham Sider <Graham.Sider at amd.com>

Acked-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 48 +++++--------------------
>  1 file changed, 9 insertions(+), 39 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> index aebc384531ac..34233a74248c 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> @@ -572,45 +572,15 @@ void amdgpu_gmc_tmz_set(struct amdgpu_device *adev)
>  void amdgpu_gmc_noretry_set(struct amdgpu_device *adev)
>  {
>         struct amdgpu_gmc *gmc = &adev->gmc;
> -
> -       switch (adev->ip_versions[GC_HWIP][0]) {
> -       case IP_VERSION(9, 0, 1):
> -       case IP_VERSION(9, 3, 0):
> -       case IP_VERSION(9, 4, 0):
> -       case IP_VERSION(9, 4, 1):
> -       case IP_VERSION(9, 4, 2):
> -       case IP_VERSION(10, 3, 3):
> -       case IP_VERSION(10, 3, 4):
> -       case IP_VERSION(10, 3, 5):
> -       case IP_VERSION(10, 3, 6):
> -       case IP_VERSION(10, 3, 7):
> -               /*
> -                * noretry = 0 will cause kfd page fault tests fail
> -                * for some ASICs, so set default to 1 for these ASICs.
> -                */
> -               if (amdgpu_noretry == -1)
> -                       gmc->noretry = 1;
> -               else
> -                       gmc->noretry = amdgpu_noretry;
> -               break;
> -       default:
> -               /* 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.
> -                *
> -                * 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;
> -       }
> +       uint32_t gc_ver = adev->ip_versions[GC_HWIP][0];
> +       bool noretry_default = (gc_ver == IP_VERSION(9, 0, 1) ||
> +                               gc_ver == IP_VERSION(9, 3, 0) ||
> +                               gc_ver == IP_VERSION(9, 4, 0) ||
> +                               gc_ver == IP_VERSION(9, 4, 1) ||
> +                               gc_ver == IP_VERSION(9, 4, 2) ||
> +                               gc_ver >= IP_VERSION(10, 3, 0));
> +
> +       gmc->noretry = (amdgpu_noretry == -1) ? noretry_default : amdgpu_noretry;
>  }
>
>  void amdgpu_gmc_set_vm_fault_masks(struct amdgpu_device *adev, int hub_type,
> --
> 2.25.1
>


More information about the amd-gfx mailing list