drm/amdgpu: Let KFD sync with VM fences
authorFelix Kuehling <Felix.Kuehling@amd.com>
Mon, 18 Dec 2023 21:17:23 +0000 (16:17 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 5 Feb 2024 20:14:30 +0000 (20:14 +0000)
[ Upstream commit ec9ba4821fa52b5efdbc4cdf0a77497990655231 ]

Change the rules for amdgpu_sync_resv to let KFD synchronize with VM
fences on page table reservations. This fixes intermittent memory
corruption after evictions when using amdgpu_vm_handle_moved to update
page tables for VM mappings managed through render nodes.

Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c

index dcd8c06..1b013a4 100644 (file)
@@ -191,7 +191,8 @@ static bool amdgpu_sync_test_fence(struct amdgpu_device *adev,
 
        /* Never sync to VM updates either. */
        if (fence_owner == AMDGPU_FENCE_OWNER_VM &&
-           owner != AMDGPU_FENCE_OWNER_UNDEFINED)
+           owner != AMDGPU_FENCE_OWNER_UNDEFINED &&
+           owner != AMDGPU_FENCE_OWNER_KFD)
                return false;
 
        /* Ignore fences depending on the sync mode */