[AMD Official Use Only - General] Hi Felix,
Yeah, I believe that we were always set gart domain start as 0 before. Regards, Yubiao -----Original Message----- From: Kuehling, Felix <[email protected]> Sent: Friday, September 15, 2023 10:54 PM To: Koenig, Christian <[email protected]>; Wang, YuBiao <[email protected]>; [email protected]; Sharma, Shashank <[email protected]> Cc: Chen, Horace <[email protected]>; Tuikov, Luben <[email protected]>; Deucher, Alexander <[email protected]>; Zhang, Hawking <[email protected]>; Liu, Monk <[email protected]>; Xu, Feifei <[email protected]>; Kevin Wang <[email protected]> Subject: Re: [PATCH] drm/amdkfd: Use gpu_offset for user queue's wptr 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 <[email protected]> > > 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? Regards, Felix > > Reviewed-by: Christian König <[email protected]> > >> --- >> 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; >
