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@xxxxxxx>
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@xxxxxxx>
---
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;