[PATCH 10/10] drm/amdgpu: add backup condition for vm
Chunming Zhou
David1.Zhou at amd.com
Mon Aug 15 06:06:42 UTC 2016
Change-Id: I73aa32cda17cd1039232125afa4aad299b264705
Signed-off-by: Chunming Zhou <David1.Zhou at amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index df10795..3f770ec 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -713,9 +713,11 @@ int amdgpu_vm_update_page_directory(struct amdgpu_device *adev,
{
int r;
- r = amdgpu_vm_update_pd_or_shadow(adev, vm, true);
- if (r)
- return r;
+ if (amdgpu_need_backup(adev)) {
+ r = amdgpu_vm_update_pd_or_shadow(adev, vm, true);
+ if (r)
+ return r;
+ }
return amdgpu_vm_update_pd_or_shadow(adev, vm, false);
}
@@ -729,6 +731,9 @@ int amdgpu_vm_recover_page_table_from_shadow(struct amdgpu_device *adev,
uint32_t domain;
int r;
+ if (!amdgpu_need_backup(adev))
+ return 0;
+
if (!vm->page_directory->shadow)
return 0;
@@ -1037,7 +1042,8 @@ static int amdgpu_vm_bo_update_mapping(struct amdgpu_device *adev,
if (r)
goto error_free;
- amdgpu_vm_frag_ptes(¶ms, vm, start, last + 1, addr, flags, true);
+ if (amdgpu_need_backup(adev))
+ amdgpu_vm_frag_ptes(¶ms, vm, start, last + 1, addr, flags, true);
amdgpu_vm_frag_ptes(¶ms, vm, start, last + 1, addr, flags, false);
amdgpu_ring_pad_ib(ring, params.ib);
@@ -1418,7 +1424,8 @@ int amdgpu_vm_bo_map(struct amdgpu_device *adev,
AMDGPU_GPU_PAGE_SIZE, true,
AMDGPU_GEM_DOMAIN_VRAM,
AMDGPU_GEM_CREATE_NO_CPU_ACCESS |
- AMDGPU_GEM_CREATE_SHADOW,
+ (amdgpu_need_backup(adev) ?
+ AMDGPU_GEM_CREATE_SHADOW : 0),
NULL, resv, &pt);
if (r)
goto error_free;
@@ -1619,7 +1626,8 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm)
r = amdgpu_bo_create(adev, pd_size, align, true,
AMDGPU_GEM_DOMAIN_VRAM,
AMDGPU_GEM_CREATE_NO_CPU_ACCESS |
- AMDGPU_GEM_CREATE_SHADOW,
+ (amdgpu_need_backup(adev) ?
+ AMDGPU_GEM_CREATE_SHADOW : 0),
NULL, NULL, &vm->page_directory);
if (r)
goto error_free_sched_entity;
--
1.9.1
More information about the amd-gfx
mailing list