aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
diff options
context:
space:
mode:
authorMonk Liu <Monk.Liu@amd.com>2017-06-06 05:25:13 -0400
committerAlex Deucher <alexander.deucher@amd.com>2017-07-14 11:06:10 -0400
commit8fdf074f1840eae838bbccbec37d0a1504ee432b (patch)
tree7bfca536bc87c4ae0e8ad6129f95bc72dd6bef9a /drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
parentbdb8cd10b99d55d35b869fbf5cd6df9420b9bd85 (diff)
drm/amdgpu:fix world switch hang
for SR-IOV, we must keep the pipeline-sync in the protection of COND_EXEC, otherwise the command consumed by CPG is not consistent when world switch triggerd, e.g.: world switch hit and the IB frame is skipped so the fence won't signal, thus CP will jump to the next DMAframe's pipeline-sync command, and it will make CP hang foever. after pipelin-sync moved into COND_EXEC the consistency can be guaranteed Signed-off-by: Monk Liu <Monk.Liu@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
index 936f158bc5ec..3441ec58c823 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
@@ -222,7 +222,7 @@ int amdgpu_vm_alloc_pts(struct amdgpu_device *adev,
222int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct amdgpu_ring *ring, 222int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct amdgpu_ring *ring,
223 struct amdgpu_sync *sync, struct dma_fence *fence, 223 struct amdgpu_sync *sync, struct dma_fence *fence,
224 struct amdgpu_job *job); 224 struct amdgpu_job *job);
225int amdgpu_vm_flush(struct amdgpu_ring *ring, struct amdgpu_job *job); 225int amdgpu_vm_flush(struct amdgpu_ring *ring, struct amdgpu_job *job, bool need_pipe_sync);
226void amdgpu_vm_reset_id(struct amdgpu_device *adev, unsigned vmhub, 226void amdgpu_vm_reset_id(struct amdgpu_device *adev, unsigned vmhub,
227 unsigned vmid); 227 unsigned vmid);
228void amdgpu_vm_reset_all_ids(struct amdgpu_device *adev); 228void amdgpu_vm_reset_all_ids(struct amdgpu_device *adev);