drm/amdgpu: promote the implicit sync to the dependent read fences
authorPrike Liang <Prike.Liang@amd.com>
Wed, 23 Apr 2025 12:26:48 +0000 (20:26 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 7 May 2025 21:44:51 +0000 (17:44 -0400)
The driver doesn't want to implicitly sync on the DMA_RESV_USAGE_BOOKKEEP
usage fences, and the BOOKEEP fences should be synced explicitly. So, as
the VM implicit syncing only need to return and sync the dependent read
fences.

Signed-off-by: Prike Liang <Prike.Liang@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c

index 5576ed0b508f056ad03357f4a09265f8b57aaf8d..d6ae9974c952ee9b8d4fdbbbd78a046b32e4f31a 100644 (file)
@@ -249,9 +249,8 @@ int amdgpu_sync_resv(struct amdgpu_device *adev, struct amdgpu_sync *sync,
 
        if (resv == NULL)
                return -EINVAL;
-
-       /* TODO: Use DMA_RESV_USAGE_READ here */
-       dma_resv_for_each_fence(&cursor, resv, DMA_RESV_USAGE_BOOKKEEP, f) {
+       /* Implicitly sync only to KERNEL, WRITE and READ */
+       dma_resv_for_each_fence(&cursor, resv, DMA_RESV_USAGE_READ, f) {
                dma_fence_chain_for_each(f, f) {
                        struct dma_fence *tmp = dma_fence_chain_contained(f);