diff options
author | Bas Nieuwenhuizen | 2017-09-07 13:23:21 +0200 |
---|---|---|
committer | Alex Deucher | 2017-09-12 20:23:52 +0200 |
commit | 862095237c392887819e98018d6dc187d8c78726 (patch) | |
tree | 49231f545cbdf988e61bcba673037799d47643e5 /drivers/gpu | |
parent | drm/ttm: fix ttm_bo_cleanup_refs_or_queue once more (diff) | |
download | kernel-qcow2-linux-862095237c392887819e98018d6dc187d8c78726.tar.gz kernel-qcow2-linux-862095237c392887819e98018d6dc187d8c78726.tar.xz kernel-qcow2-linux-862095237c392887819e98018d6dc187d8c78726.zip |
drm/amdgpu: Account for shadow PTs in mapping update IB size.
When amdgpu_vm_frag_ptes calls amdgpu_vm_update_ptes and the pt
has a shadow PT we mirror all the write to the shadow PT too, which
results in twice the commands.
Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c index c9223a5184de..545531db66db 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c @@ -1536,10 +1536,12 @@ static int amdgpu_vm_bo_update_mapping(struct amdgpu_device *adev, nptes = last - start + 1; /* - * reserve space for one command every (1 << BLOCK_SIZE) + * reserve space for two commands every (1 << BLOCK_SIZE) * entries or 2k dwords (whatever is smaller) + * + * The second command is for the shadow pagetables. */ - ncmds = (nptes >> min(adev->vm_manager.block_size, 11u)) + 1; + ncmds = ((nptes >> min(adev->vm_manager.block_size, 11u)) + 1) * 2; /* padding, etc. */ ndw = 64; |