* [PATCH 0/1] drm/amdkfd: Fix unaligned doorbell absolute offset for gfx8
@ 2023-09-27 16:16 Arvind Yadav
2023-09-27 16:16 ` [PATCH 1/1] " Arvind Yadav
2023-09-27 16:25 ` [PATCH 0/1] " Yadav, Arvind
0 siblings, 2 replies; 5+ messages in thread
From: Arvind Yadav @ 2023-09-27 16:16 UTC (permalink / raw)
To: Christian.Koenig, alexander.deucher, shashank.sharma,
Felix.Kuehling, Xinhui.Pan, airlied, daniel
Cc: amd-gfx, dri-devel, linux-kernel, Arvind Yadav
On older chips, the absolute doorbell offset within
the doorbell page is based on the queue ID.
KFD is using queue ID and doorbell size to get an
absolute doorbell offset in userspace.
This patch is to adjust the absolute doorbell offset
against the doorbell id considering the doorbell
size of 32/64 bit.
Arvind Yadav (1):
drm/amdkfd: Fix unaligned doorbell absolute offset for gfx8
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
--
2.34.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/1] drm/amdkfd: Fix unaligned doorbell absolute offset for gfx8
2023-09-27 16:16 [PATCH 0/1] drm/amdkfd: Fix unaligned doorbell absolute offset for gfx8 Arvind Yadav
@ 2023-09-27 16:16 ` Arvind Yadav
2023-09-27 16:25 ` Yadav, Arvind
[not found] ` <a893f9d9-3cc8-44af-9712-602a7b72f780@amd.com>
2023-09-27 16:25 ` [PATCH 0/1] " Yadav, Arvind
1 sibling, 2 replies; 5+ messages in thread
From: Arvind Yadav @ 2023-09-27 16:16 UTC (permalink / raw)
To: Christian.Koenig, alexander.deucher, shashank.sharma,
Felix.Kuehling, Xinhui.Pan, airlied, daniel
Cc: amd-gfx, dri-devel, linux-kernel, Arvind Yadav, Christian Koenig
This patch is to adjust the absolute doorbell offset
against the doorbell id considering the doorbell
size of 32/64 bit.
Cc: Christian Koenig <christian.koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Shashank Sharma <shashank.sharma@amd.com>
Signed-off-by: Arvind Yadav <Arvind.Yadav@amd.com>
---
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
index 0d3d538b64eb..c327f7f604d7 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
@@ -407,7 +407,16 @@ static int allocate_doorbell(struct qcm_process_device *qpd,
q->properties.doorbell_off = amdgpu_doorbell_index_on_bar(dev->adev,
qpd->proc_doorbells,
- q->doorbell_id);
+ 0);
+
+ /* Adjust the absolute doorbell offset against the doorbell id considering
+ * the doorbell size of 32/64 bit.
+ */
+ if (!KFD_IS_SOC15(dev))
+ q->properties.doorbell_off += q->doorbell_id;
+ else
+ q->properties.doorbell_off += q->doorbell_id * 2;
+
return 0;
}
--
2.34.1
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH 1/1] drm/amdkfd: Fix unaligned doorbell absolute offset for gfx8
2023-09-27 16:16 ` [PATCH 1/1] " Arvind Yadav
@ 2023-09-27 16:25 ` Yadav, Arvind
[not found] ` <a893f9d9-3cc8-44af-9712-602a7b72f780@amd.com>
1 sibling, 0 replies; 5+ messages in thread
From: Yadav, Arvind @ 2023-09-27 16:25 UTC (permalink / raw)
To: Arvind Yadav, Christian.Koenig, alexander.deucher,
shashank.sharma, Xinhui.Pan, airlied, daniel, Felix.Kuehling
Cc: amd-gfx, dri-devel, linux-kernel
Adding Felix.Kuehling@amd.com for review.
Thanks
~Arvind
On 9/27/2023 9:46 PM, Arvind Yadav wrote:
> This patch is to adjust the absolute doorbell offset
> against the doorbell id considering the doorbell
> size of 32/64 bit.
>
> Cc: Christian Koenig <christian.koenig@amd.com>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Signed-off-by: Shashank Sharma <shashank.sharma@amd.com>
> Signed-off-by: Arvind Yadav <Arvind.Yadav@amd.com>
> ---
> drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
> index 0d3d538b64eb..c327f7f604d7 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
> @@ -407,7 +407,16 @@ static int allocate_doorbell(struct qcm_process_device *qpd,
>
> q->properties.doorbell_off = amdgpu_doorbell_index_on_bar(dev->adev,
> qpd->proc_doorbells,
> - q->doorbell_id);
> + 0);
> +
> + /* Adjust the absolute doorbell offset against the doorbell id considering
> + * the doorbell size of 32/64 bit.
> + */
> + if (!KFD_IS_SOC15(dev))
> + q->properties.doorbell_off += q->doorbell_id;
> + else
> + q->properties.doorbell_off += q->doorbell_id * 2;
> +
> return 0;
> }
>
^ permalink raw reply [flat|nested] 5+ messages in thread[parent not found: <a893f9d9-3cc8-44af-9712-602a7b72f780@amd.com>]
* Re: [PATCH 1/1] drm/amdkfd: Fix unaligned doorbell absolute offset for gfx8
[not found] ` <a893f9d9-3cc8-44af-9712-602a7b72f780@amd.com>
@ 2023-09-27 17:59 ` Shashank Sharma
0 siblings, 0 replies; 5+ messages in thread
From: Shashank Sharma @ 2023-09-27 17:59 UTC (permalink / raw)
To: Felix Kuehling, Arvind Yadav, Christian.Koenig,
alexander.deucher, Felix.Kuehling, Xinhui.Pan, airlied, daniel,
Mukul Joshi
Cc: dri-devel, amd-gfx, linux-kernel
On 27/09/2023 19:27, Felix Kuehling wrote:
>
> [+Mukul]
>
> On 2023-09-27 12:16, Arvind Yadav wrote:
>> This patch is to adjust the absolute doorbell offset
>> against the doorbell id considering the doorbell
>> size of 32/64 bit.
>>
>> Cc: Christian Koenig<christian.koenig@amd.com>
>> Cc: Alex Deucher<alexander.deucher@amd.com>
>> Signed-off-by: Shashank Sharma<shashank.sharma@amd.com>
>> Signed-off-by: Arvind Yadav<Arvind.Yadav@amd.com>
>> ---
>> drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 11 ++++++++++-
>> 1 file changed, 10 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
>> index 0d3d538b64eb..c327f7f604d7 100644
>> --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
>> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
>> @@ -407,7 +407,16 @@ static int allocate_doorbell(struct qcm_process_device *qpd,
>>
>> q->properties.doorbell_off = amdgpu_doorbell_index_on_bar(dev->adev,
>> qpd->proc_doorbells,
>> - q->doorbell_id);
>> + 0);
>
> Looks like we're now always calling amdgpu_doorbell_index_on_bar with
> the third parameter = 0. So we could remove that parameter. It doesn't
> do us any good and only causes bugs if we use any non-0 value.
>
Hey Felix,
Actually this was happening because in usermode KFD library the
doorbell-size is for non-SOC15() hardware is hard coded to 4 bytes.
We added this fix just so that the library code doesn't need to be
changed, but can still get aligned to kernel code.
GFX Usermode queue code uses this doorbell-index parameter, and it gives
us the right offset.
Regards
Shashank
>
>> +
>> + /* Adjust the absolute doorbell offset against the doorbell id considering
>> + * the doorbell size of 32/64 bit.
>> + */
>> + if (!KFD_IS_SOC15(dev))
>> + q->properties.doorbell_off += q->doorbell_id;
>> + else
>> + q->properties.doorbell_off += q->doorbell_id * 2;
>
> This could be simplified and generalized as
>
> q->properties.doorbell_off += q->doorbell_id * dev->kfd->device_info.doorbell_size / 4;
Agree, we can do this simplification.
- Shashank
> Regards,
> Felix
>
>
>> +
>> return 0;
>> }
>>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 0/1] drm/amdkfd: Fix unaligned doorbell absolute offset for gfx8
2023-09-27 16:16 [PATCH 0/1] drm/amdkfd: Fix unaligned doorbell absolute offset for gfx8 Arvind Yadav
2023-09-27 16:16 ` [PATCH 1/1] " Arvind Yadav
@ 2023-09-27 16:25 ` Yadav, Arvind
1 sibling, 0 replies; 5+ messages in thread
From: Yadav, Arvind @ 2023-09-27 16:25 UTC (permalink / raw)
To: Arvind Yadav, Christian.Koenig, alexander.deucher,
shashank.sharma, Xinhui.Pan, airlied, daniel, Felix.Kuehling
Cc: amd-gfx, dri-devel, linux-kernel
Adding Felix.Kuehling@amd.com for review.
Thanks
~Arvind
On 9/27/2023 9:46 PM, Arvind Yadav wrote:
> On older chips, the absolute doorbell offset within
> the doorbell page is based on the queue ID.
> KFD is using queue ID and doorbell size to get an
> absolute doorbell offset in userspace.
>
> This patch is to adjust the absolute doorbell offset
> against the doorbell id considering the doorbell
> size of 32/64 bit.
>
> Arvind Yadav (1):
> drm/amdkfd: Fix unaligned doorbell absolute offset for gfx8
>
> drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-09-27 18:00 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-27 16:16 [PATCH 0/1] drm/amdkfd: Fix unaligned doorbell absolute offset for gfx8 Arvind Yadav
2023-09-27 16:16 ` [PATCH 1/1] " Arvind Yadav
2023-09-27 16:25 ` Yadav, Arvind
[not found] ` <a893f9d9-3cc8-44af-9712-602a7b72f780@amd.com>
2023-09-27 17:59 ` Shashank Sharma
2023-09-27 16:25 ` [PATCH 0/1] " Yadav, Arvind
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®