drm/amdkfd: svm range always mapped flag not working on APU
authorPhilip Yang <Philip.Yang@amd.com>
Thu, 14 Dec 2023 14:42:03 +0000 (09:42 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 15 Dec 2023 17:16:26 +0000 (12:16 -0500)
commit65a618dd73216e111baab144a837f842dbb6a738
treeca5abb699050139e771873aaf1ec4085b4747a6e
parent24149412dfc71f7f4a54868702e9145e396263d3
drm/amdkfd: svm range always mapped flag not working on APU

On gfx943 APU there is no VRAM and page migration, queue CWSR area, svm
range with always mapped flag, is not mapped to GPU correctly. This
works fine if retry fault on CWSR area can be recovered, but could cause
deadlock if there is another retry fault recover waiting for CWSR to
finish.

Fix this by mapping svm range with always mapped flag to GPU with ACCESS
attribute if XNACK ON.

There is side effect, because all GPUs have ACCESS attribute by default
on new svm range with XNACK on, the CWSR area will be mapped to all GPUs
after this change. This side effect will be fixed with Thunk change to
set CWSR svm range with ACCESS_IN_PLACE attribute on the GPU that user
queue is created.

Signed-off-by: Philip Yang <Philip.Yang@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdkfd/kfd_svm.c