aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu.h1
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c17
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c4
3 files changed, 21 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index a3dbbd1fc060..736eb4560fd5 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -80,6 +80,7 @@ extern int amdgpu_deep_color;
80extern int amdgpu_vm_size; 80extern int amdgpu_vm_size;
81extern int amdgpu_vm_block_size; 81extern int amdgpu_vm_block_size;
82extern int amdgpu_vm_fault_stop; 82extern int amdgpu_vm_fault_stop;
83extern int amdgpu_vm_debug;
83extern int amdgpu_enable_scheduler; 84extern int amdgpu_enable_scheduler;
84extern int amdgpu_sched_jobs; 85extern int amdgpu_sched_jobs;
85extern int amdgpu_sched_hw_submission; 86extern int amdgpu_sched_hw_submission;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
index 29fc45ce64dd..25012c790f8f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
@@ -567,9 +567,24 @@ static int amdgpu_bo_vm_update_pte(struct amdgpu_cs_parser *p,
567 if (r) 567 if (r)
568 return r; 568 return r;
569 } 569 }
570
571 }
572
573 r = amdgpu_vm_clear_invalids(adev, vm, &p->ibs[0].sync);
574
575 if (amdgpu_vm_debug && p->bo_list) {
576 /* Invalidate all BOs to test for userspace bugs */
577 for (i = 0; i < p->bo_list->num_entries; i++) {
578 /* ignore duplicates */
579 bo = p->bo_list->array[i].robj;
580 if (!bo)
581 continue;
582
583 amdgpu_vm_bo_invalidate(adev, bo);
584 }
570 } 585 }
571 586
572 return amdgpu_vm_clear_invalids(adev, vm, &p->ibs[0].sync); 587 return r;
573} 588}
574 589
575static int amdgpu_cs_ib_vm_chunk(struct amdgpu_device *adev, 590static int amdgpu_cs_ib_vm_chunk(struct amdgpu_device *adev,
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index bec091632194..6134b1ece17f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -76,6 +76,7 @@ int amdgpu_deep_color = 0;
76int amdgpu_vm_size = 8; 76int amdgpu_vm_size = 8;
77int amdgpu_vm_block_size = -1; 77int amdgpu_vm_block_size = -1;
78int amdgpu_vm_fault_stop = 0; 78int amdgpu_vm_fault_stop = 0;
79int amdgpu_vm_debug = 0;
79int amdgpu_exp_hw_support = 0; 80int amdgpu_exp_hw_support = 0;
80int amdgpu_enable_scheduler = 1; 81int amdgpu_enable_scheduler = 1;
81int amdgpu_sched_jobs = 16; 82int amdgpu_sched_jobs = 16;
@@ -145,6 +146,9 @@ module_param_named(vm_block_size, amdgpu_vm_block_size, int, 0444);
145MODULE_PARM_DESC(vm_fault_stop, "Stop on VM fault (0 = never (default), 1 = print first, 2 = always)"); 146MODULE_PARM_DESC(vm_fault_stop, "Stop on VM fault (0 = never (default), 1 = print first, 2 = always)");
146module_param_named(vm_fault_stop, amdgpu_vm_fault_stop, int, 0444); 147module_param_named(vm_fault_stop, amdgpu_vm_fault_stop, int, 0444);
147 148
149MODULE_PARM_DESC(vm_debug, "Debug VM handling (0 = disabled (default), 1 = enabled)");
150module_param_named(vm_debug, amdgpu_vm_debug, int, 0644);
151
148MODULE_PARM_DESC(exp_hw_support, "experimental hw support (1 = enable, 0 = disable (default))"); 152MODULE_PARM_DESC(exp_hw_support, "experimental hw support (1 = enable, 0 = disable (default))");
149module_param_named(exp_hw_support, amdgpu_exp_hw_support, int, 0444); 153module_param_named(exp_hw_support, amdgpu_exp_hw_support, int, 0444);
150 154