AMD-GFX Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH] drm/amdgpu: make IB test synchronize with init for SRIOV(v2)
@ 2020-06-29  9:35 Monk Liu
  2020-06-29  9:43 ` Christian König
  0 siblings, 1 reply; 3+ messages in thread
From: Monk Liu @ 2020-06-29  9:35 UTC (permalink / raw)
  To: amd-gfx; +Cc: Monk Liu

issue:
originally we kickoff IB test asynchronously with driver's
init, thus
the IB test may still running when the driver loading
done (modprobe amdgpu done).
if we shutdown VM immediately after amdgpu driver
loaded then GPU may
hang because the IB test is still running

fix:
flush the delayed_init routine at the bottom of device_init
to avoid driver loading done prior to the IB test completes

Signed-off-by: Monk Liu <Monk.Liu@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 457f5d2..7a4e965 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -3295,6 +3295,9 @@ int amdgpu_device_init(struct amdgpu_device *adev,
 	queue_delayed_work(system_wq, &adev->delayed_init_work,
 			   msecs_to_jiffies(AMDGPU_RESUME_MS));
 
+	if (amdgpu_sriov_vf(adev))
+		flush_delayed_work(&adev->delayed_init_work);
+
 	r = sysfs_create_files(&adev->dev->kobj, amdgpu_dev_attributes);
 	if (r) {
 		dev_err(adev->dev, "Could not create amdgpu device attr\n");
-- 
2.7.4

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] drm/amdgpu: make IB test synchronize with init for SRIOV(v2)
  2020-06-29  9:35 [PATCH] drm/amdgpu: make IB test synchronize with init for SRIOV(v2) Monk Liu
@ 2020-06-29  9:43 ` Christian König
  2020-06-29 14:02   ` Liu, Monk
  0 siblings, 1 reply; 3+ messages in thread
From: Christian König @ 2020-06-29  9:43 UTC (permalink / raw)
  To: Monk Liu, amd-gfx

Am 29.06.20 um 11:35 schrieb Monk Liu:
> issue:
> originally we kickoff IB test asynchronously with driver's
> init, thus
> the IB test may still running when the driver loading
> done (modprobe amdgpu done).
> if we shutdown VM immediately after amdgpu driver
> loaded then GPU may
> hang because the IB test is still running
>
> fix:
> flush the delayed_init routine at the bottom of device_init
> to avoid driver loading done prior to the IB test completes
>
> Signed-off-by: Monk Liu <Monk.Liu@amd.com>

Maybe do this even after sysfs and PMU init, but either way Acked-by: 
Christian König <christian.koenig@amd.com>

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 +++
>   1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 457f5d2..7a4e965 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -3295,6 +3295,9 @@ int amdgpu_device_init(struct amdgpu_device *adev,
>   	queue_delayed_work(system_wq, &adev->delayed_init_work,
>   			   msecs_to_jiffies(AMDGPU_RESUME_MS));
>   
> +	if (amdgpu_sriov_vf(adev))
> +		flush_delayed_work(&adev->delayed_init_work);
> +
>   	r = sysfs_create_files(&adev->dev->kobj, amdgpu_dev_attributes);
>   	if (r) {
>   		dev_err(adev->dev, "Could not create amdgpu device attr\n");

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 3+ messages in thread

* RE: [PATCH] drm/amdgpu: make IB test synchronize with init for SRIOV(v2)
  2020-06-29  9:43 ` Christian König
@ 2020-06-29 14:02   ` Liu, Monk
  0 siblings, 0 replies; 3+ messages in thread
From: Liu, Monk @ 2020-06-29 14:02 UTC (permalink / raw)
  To: Koenig, Christian, amd-gfx

We'd better not let the flush after sysfs creation otherwise there is chance that user use sysfs to touch hardware before the IB test done and introduce headache issues 

_____________________________________
Monk Liu|GPU Virtualization Team |AMD


-----Original Message-----
From: Christian König <ckoenig.leichtzumerken@gmail.com> 
Sent: Monday, June 29, 2020 5:44 PM
To: Liu, Monk <Monk.Liu@amd.com>; amd-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/amdgpu: make IB test synchronize with init for SRIOV(v2)

Am 29.06.20 um 11:35 schrieb Monk Liu:
> issue:
> originally we kickoff IB test asynchronously with driver's init, thus 
> the IB test may still running when the driver loading done (modprobe 
> amdgpu done).
> if we shutdown VM immediately after amdgpu driver loaded then GPU may 
> hang because the IB test is still running
>
> fix:
> flush the delayed_init routine at the bottom of device_init to avoid 
> driver loading done prior to the IB test completes
>
> Signed-off-by: Monk Liu <Monk.Liu@amd.com>

Maybe do this even after sysfs and PMU init, but either way Acked-by: 
Christian König <christian.koenig@amd.com>

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 +++
>   1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 457f5d2..7a4e965 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -3295,6 +3295,9 @@ int amdgpu_device_init(struct amdgpu_device *adev,
>   	queue_delayed_work(system_wq, &adev->delayed_init_work,
>   			   msecs_to_jiffies(AMDGPU_RESUME_MS));
>   
> +	if (amdgpu_sriov_vf(adev))
> +		flush_delayed_work(&adev->delayed_init_work);
> +
>   	r = sysfs_create_files(&adev->dev->kobj, amdgpu_dev_attributes);
>   	if (r) {
>   		dev_err(adev->dev, "Could not create amdgpu device attr\n");

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, back to index

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-29  9:35 [PATCH] drm/amdgpu: make IB test synchronize with init for SRIOV(v2) Monk Liu
2020-06-29  9:43 ` Christian König
2020-06-29 14:02   ` Liu, Monk

AMD-GFX Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/amd-gfx/0 amd-gfx/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 amd-gfx amd-gfx/ https://lore.kernel.org/amd-gfx \
		amd-gfx@lists.freedesktop.org
	public-inbox-index amd-gfx

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.freedesktop.lists.amd-gfx


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git