drm/amdgpu:fix world switch hang
authorMonk Liu <Monk.Liu@amd.com>
Tue, 6 Jun 2017 09:25:13 +0000 (17:25 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 14 Jul 2017 15:06:10 +0000 (11:06 -0400)
commit8fdf074f1840eae838bbccbec37d0a1504ee432b
tree7bfca536bc87c4ae0e8ad6129f95bc72dd6bef9a
parentbdb8cd10b99d55d35b869fbf5cd6df9420b9bd85
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>
drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h