2023-10-09 09:02:14

by Sharma, Shashank

[permalink] [raw]
Subject: RE: [PATCH] drm/amdgpu: fix SI failure due to doorbells allocation

[AMD Official Use Only - General]

Reviewed-by: Shashank Sharma <[email protected]>

Regards
Shashank
-----Original Message-----
From: Icenowy Zheng <[email protected]>
Sent: Sunday, October 8, 2023 8:47 AM
To: Deucher, Alexander <[email protected]>; Koenig, Christian <[email protected]>; Pan, Xinhui <[email protected]>; David Airlie <[email protected]>; Daniel Vetter <[email protected]>; Sharma, Shashank <[email protected]>; Yadav, Arvind <[email protected]>
Cc: [email protected]; [email protected]; [email protected]; Icenowy Zheng <[email protected]>
Subject: [PATCH] drm/amdgpu: fix SI failure due to doorbells allocation

SI hardware does not have doorbells at all, however currently the code will try to do the allocation and thus fail, makes SI AMDGPU not usable.

Fix this failure by skipping doorbells allocation when doorbells count is zero.

Fixes: 54c30d2a8def ("drm/amdgpu: create kernel doorbell pages")
Signed-off-by: Icenowy Zheng <[email protected]>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell_mgr.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell_mgr.c
index d0249ada91d30..599aece42017a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell_mgr.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell_mgr.c
@@ -142,6 +142,10 @@ int amdgpu_doorbell_create_kernel_doorbells(struct amdgpu_device *adev)
int r;
int size;

+ /* SI HW does not have doorbells, skip allocation */
+ if (adev->doorbell.num_kernel_doorbells == 0)
+ return 0;
+
/* Reserve first num_kernel_doorbells (page-aligned) for kernel ops */
size = ALIGN(adev->doorbell.num_kernel_doorbells * sizeof(u32), PAGE_SIZE);

--
2.39.1


2023-10-09 18:46:40

by Alex Deucher

[permalink] [raw]
Subject: Re: [PATCH] drm/amdgpu: fix SI failure due to doorbells allocation

Applied. Thanks!

On Mon, Oct 9, 2023 at 5:27 AM Sharma, Shashank <[email protected]> wrote:
>
> [AMD Official Use Only - General]
>
> Reviewed-by: Shashank Sharma <[email protected]>
>
> Regards
> Shashank
> -----Original Message-----
> From: Icenowy Zheng <[email protected]>
> Sent: Sunday, October 8, 2023 8:47 AM
> To: Deucher, Alexander <[email protected]>; Koenig, Christian <[email protected]>; Pan, Xinhui <[email protected]>; David Airlie <[email protected]>; Daniel Vetter <[email protected]>; Sharma, Shashank <[email protected]>; Yadav, Arvind <[email protected]>
> Cc: [email protected]; [email protected]; [email protected]; Icenowy Zheng <[email protected]>
> Subject: [PATCH] drm/amdgpu: fix SI failure due to doorbells allocation
>
> SI hardware does not have doorbells at all, however currently the code will try to do the allocation and thus fail, makes SI AMDGPU not usable.
>
> Fix this failure by skipping doorbells allocation when doorbells count is zero.
>
> Fixes: 54c30d2a8def ("drm/amdgpu: create kernel doorbell pages")
> Signed-off-by: Icenowy Zheng <[email protected]>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell_mgr.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell_mgr.c
> index d0249ada91d30..599aece42017a 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell_mgr.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell_mgr.c
> @@ -142,6 +142,10 @@ int amdgpu_doorbell_create_kernel_doorbells(struct amdgpu_device *adev)
> int r;
> int size;
>
> + /* SI HW does not have doorbells, skip allocation */
> + if (adev->doorbell.num_kernel_doorbells == 0)
> + return 0;
> +
> /* Reserve first num_kernel_doorbells (page-aligned) for kernel ops */
> size = ALIGN(adev->doorbell.num_kernel_doorbells * sizeof(u32), PAGE_SIZE);
>
> --
> 2.39.1
>