[PATCH] drm/amdkfd: Use gpu_offset for user queue's wptr

Christian König ckoenig.leichtzumerken at gmail.com
Mon Sep 18 08:23:00 UTC 2023


Am 15.09.23 um 16:53 schrieb Felix Kuehling:
> On 2023-09-15 2:50, Christian König wrote:
>> Am 15.09.23 um 04:52 schrieb YuBiao Wang:
>>> Directly use tbo's start address will miss the domain start offset. 
>>> Need
>>> to use gpu_offset instead.
>>>
>>> Signed-off-by: YuBiao Wang <YuBiao.Wang at amd.com>
>>
>> Felix and/or Shashank should probably take a look as well, but of 
>> hand that looks like the correct fix.
>
> Looks reasonable to me. Why did this not cause problems before? Are we 
> just lucky that the domain start offset is 0 on the GPUs we've tested 
> so far?

By coincident the GART ended up being placed at 0 before. Now Alex has 
to move it to work around other issues.

Regards,
Christian.

>
> Regards,
>   Felix
>
>
>>
>> Reviewed-by: Christian König <christian.koenig at amd.com>
>>
>>> ---
>>>   drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 2 +-
>>>   1 file changed, 1 insertion(+), 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 77159b03a422..36e7171ad9a7 100644
>>> --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
>>> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
>>> @@ -216,7 +216,7 @@ static int add_queue_mes(struct 
>>> device_queue_manager *dqm, struct queue *q,
>>>         if (q->wptr_bo) {
>>>           wptr_addr_off = (uint64_t)q->properties.write_ptr & 
>>> (PAGE_SIZE - 1);
>>> -        queue_input.wptr_mc_addr = 
>>> ((uint64_t)q->wptr_bo->tbo.resource->start << PAGE_SHIFT) + 
>>> wptr_addr_off;
>>> +        queue_input.wptr_mc_addr = amdgpu_bo_gpu_offset(q->wptr_bo) 
>>> + wptr_addr_off;
>>>       }
>>>         queue_input.is_kfd_process = 1;
>>



More information about the amd-gfx mailing list