Lines Matching refs:ggtt

46 static int populate_ggtt(struct i915_ggtt *ggtt, struct list_head *objects)  in populate_ggtt()  argument
55 obj = i915_gem_object_create_internal(ggtt->vm.i915, in populate_ggtt()
73 count, ggtt->vm.total / PAGE_SIZE); in populate_ggtt()
75 if (list_empty(&ggtt->vm.bound_list)) { in populate_ggtt()
83 static void unpin_ggtt(struct i915_ggtt *ggtt) in unpin_ggtt() argument
87 list_for_each_entry(vma, &ggtt->vm.bound_list, vm_link) in unpin_ggtt()
92 static void cleanup_objects(struct i915_ggtt *ggtt, struct list_head *list) in cleanup_objects() argument
102 i915_gem_drain_freed_objects(ggtt->vm.i915); in cleanup_objects()
108 struct i915_ggtt *ggtt = gt->ggtt; in igt_evict_something() local
114 err = populate_ggtt(ggtt, &objects); in igt_evict_something()
119 mutex_lock(&ggtt->vm.mutex); in igt_evict_something()
120 err = i915_gem_evict_something(&ggtt->vm, in igt_evict_something()
124 mutex_unlock(&ggtt->vm.mutex); in igt_evict_something()
131 unpin_ggtt(ggtt); in igt_evict_something()
134 mutex_lock(&ggtt->vm.mutex); in igt_evict_something()
135 err = i915_gem_evict_something(&ggtt->vm, in igt_evict_something()
139 mutex_unlock(&ggtt->vm.mutex); in igt_evict_something()
147 cleanup_objects(ggtt, &objects); in igt_evict_something()
154 struct i915_ggtt *ggtt = gt->ggtt; in igt_overcommit() local
164 err = populate_ggtt(ggtt, &objects); in igt_overcommit()
184 cleanup_objects(ggtt, &objects); in igt_overcommit()
191 struct i915_ggtt *ggtt = gt->ggtt; in igt_evict_for_vma() local
201 err = populate_ggtt(ggtt, &objects); in igt_evict_for_vma()
206 mutex_lock(&ggtt->vm.mutex); in igt_evict_for_vma()
207 err = i915_gem_evict_for_node(&ggtt->vm, &target, 0); in igt_evict_for_vma()
208 mutex_unlock(&ggtt->vm.mutex); in igt_evict_for_vma()
215 unpin_ggtt(ggtt); in igt_evict_for_vma()
218 mutex_lock(&ggtt->vm.mutex); in igt_evict_for_vma()
219 err = i915_gem_evict_for_node(&ggtt->vm, &target, 0); in igt_evict_for_vma()
220 mutex_unlock(&ggtt->vm.mutex); in igt_evict_for_vma()
228 cleanup_objects(ggtt, &objects); in igt_evict_for_vma()
242 struct i915_ggtt *ggtt = gt->ggtt; in igt_evict_for_cache_color() local
260 ggtt->vm.mm.color_adjust = mock_color_adjust; in igt_evict_for_cache_color()
261 GEM_BUG_ON(!i915_vm_has_cache_coloring(&ggtt->vm)); in igt_evict_for_cache_color()
299 mutex_lock(&ggtt->vm.mutex); in igt_evict_for_cache_color()
300 err = i915_gem_evict_for_node(&ggtt->vm, &target, 0); in igt_evict_for_cache_color()
301 mutex_unlock(&ggtt->vm.mutex); in igt_evict_for_cache_color()
312 mutex_lock(&ggtt->vm.mutex); in igt_evict_for_cache_color()
313 err = i915_gem_evict_for_node(&ggtt->vm, &target, 0); in igt_evict_for_cache_color()
314 mutex_unlock(&ggtt->vm.mutex); in igt_evict_for_cache_color()
324 unpin_ggtt(ggtt); in igt_evict_for_cache_color()
325 cleanup_objects(ggtt, &objects); in igt_evict_for_cache_color()
326 ggtt->vm.mm.color_adjust = NULL; in igt_evict_for_cache_color()
333 struct i915_ggtt *ggtt = gt->ggtt; in igt_evict_vm() local
339 err = populate_ggtt(ggtt, &objects); in igt_evict_vm()
344 mutex_lock(&ggtt->vm.mutex); in igt_evict_vm()
345 err = i915_gem_evict_vm(&ggtt->vm); in igt_evict_vm()
346 mutex_unlock(&ggtt->vm.mutex); in igt_evict_vm()
353 unpin_ggtt(ggtt); in igt_evict_vm()
355 mutex_lock(&ggtt->vm.mutex); in igt_evict_vm()
356 err = i915_gem_evict_vm(&ggtt->vm); in igt_evict_vm()
357 mutex_unlock(&ggtt->vm.mutex); in igt_evict_vm()
365 cleanup_objects(ggtt, &objects); in igt_evict_vm()
373 struct i915_ggtt *ggtt = gt->ggtt; in igt_evict_contexts() local
404 mutex_lock(&ggtt->vm.mutex); in igt_evict_contexts()
405 err = i915_gem_gtt_insert(&ggtt->vm, &hole, in igt_evict_contexts()
407 0, ggtt->vm.total, in igt_evict_contexts()
417 mutex_unlock(&ggtt->vm.mutex); in igt_evict_contexts()
419 mutex_lock(&ggtt->vm.mutex); in igt_evict_contexts()
425 if (i915_gem_gtt_insert(&ggtt->vm, &r->node, in igt_evict_contexts()
427 0, ggtt->vm.total, in igt_evict_contexts()
439 mutex_unlock(&ggtt->vm.mutex); in igt_evict_contexts()
491 mutex_lock(&ggtt->vm.mutex); in igt_evict_contexts()
505 mutex_unlock(&ggtt->vm.mutex); in igt_evict_contexts()