[PATCH 3/4] drm/amdgpu: Add kfd init_complete flag to check from amdgpu side

Alex Deucher alexdeucher at gmail.com
Tue Feb 23 16:30:39 UTC 2021


On Thu, Feb 18, 2021 at 8:19 PM shaoyunl <shaoyun.liu at amd.com> wrote:
>
> amdgpu driver may in reset state duirng init which will not initialize the kfd,

grammer "may be in"
typo duirng -> during

> driver need to initialize the KFD after reset by check the flag
>
> Signed-off-by: shaoyunl <shaoyun.liu at amd.com>
> Change-Id: Ic1684b55b27e0afd42bee8b9b431c4fb0afcec15
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 3 ++-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 1 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 7 +++++++
>  3 files changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> index c5343a5eecbe..a876dc3af017 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> @@ -165,7 +165,8 @@ void amdgpu_amdkfd_device_init(struct amdgpu_device *adev)
>                                         adev->doorbell_index.last_non_cp;
>                 }
>
> -               kgd2kfd_device_init(adev->kfd.dev, adev_to_drm(adev), &gpu_resources);
> +               adev->kfd.init_complete = kgd2kfd_device_init(adev->kfd.dev,
> +                                               adev_to_drm(adev), &gpu_resources);
>         }
>  }
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
> index 4687ff2961e1..3182dd97840e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
> @@ -80,6 +80,7 @@ struct amdgpu_amdkfd_fence {
>  struct amdgpu_kfd_dev {
>         struct kfd_dev *dev;
>         uint64_t vram_used;
> +       bool init_complete;
>  };
>
>  enum kgd_engine_type {
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 9f574fd151bc..e898fce96f75 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -4841,6 +4841,13 @@ int amdgpu_device_gpu_recover(struct amdgpu_device *adev,
>                 /*unlock kfd: SRIOV would do it separately */
>                 if (!need_emergency_restart && !amdgpu_sriov_vf(tmp_adev))
>                         amdgpu_amdkfd_post_reset(tmp_adev);
> +
> +               /*kfd_post_reset will do nothing if kfd device is not initialized,
> +                *need to bring up kfd here if it's not be initialized before
> +                */

Fix up the comment here.  Need a space between * and the comment.
E.g., /* kfd_post_reset ...

Also, I think this patch also needs to come before patch 1.

With those comments addressed:
Acked-by: Alex Deucher <alexander.deucher at amd.com>

> +               if (!adev->kfd.init_complete)
> +                       amdgpu_amdkfd_device_init(adev);
> +
>                 if (audio_suspended)
>                         amdgpu_device_resume_display_audio(tmp_adev);
>                 amdgpu_device_unlock_adev(tmp_adev);
> --
> 2.17.1
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list