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

2021-02-23 Thread Alex Deucher
On Thu, Feb 18, 2021 at 8:19 PM shaoyunl  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 
> 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), 
> _resources);
> +   adev->kfd.init_complete = kgd2kfd_device_init(adev->kfd.dev,
> +   adev_to_drm(adev), 
> _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 

> +   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@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


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

2021-02-22 Thread Liu, Shaoyun
[AMD Official Use Only - Internal Distribution Only]



-Original Message-
From: Liu, Shaoyun  
Sent: Thursday, February 18, 2021 8:20 PM
To: amd-gfx@lists.freedesktop.org
Cc: Liu, Shaoyun 
Subject: [PATCH 3/4] drm/amdgpu: Add kfd init_complete flag to check from 
amdgpu side

amdgpu driver may in reset state duirng init which will not initialize the kfd, 
driver need to initialize the KFD after reset by check the flag

Signed-off-by: shaoyunl 
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), 
_resources);
+   adev->kfd.init_complete = kgd2kfd_device_init(adev->kfd.dev,
+   adev_to_drm(adev), 
_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
+*/
+   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@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx