| /linux/drivers/gpu/drm/msm/ |
| H A D | msm_gem_shrinker.c | 53 struct drm_gpuvm_bo *vm_bo, *last_locked = NULL; in with_vm_locks() local 56 drm_gem_for_each_gpuvm_bo (vm_bo, obj) { in with_vm_locks() 57 struct dma_resv *resv = drm_gpuvm_resv(vm_bo->vm); in with_vm_locks() 76 drm_gpuvm_bo_get(vm_bo); in with_vm_locks() 78 last_locked = vm_bo; in with_vm_locks() 85 drm_gem_for_each_gpuvm_bo (vm_bo, obj) { in with_vm_locks() 86 struct dma_resv *resv = drm_gpuvm_resv(vm_bo->vm); in with_vm_locks() 94 drm_gpuvm_bo_put(vm_bo); in with_vm_locks() 96 if (last_locked == vm_bo) in with_vm_locks()
|
| H A D | msm_gem.c | 383 struct drm_gpuvm_bo *vm_bo; in lookup_vma() local 387 drm_gem_for_each_gpuvm_bo (vm_bo, obj) { in lookup_vma() 390 drm_gpuvm_bo_for_each_va (vma, vm_bo) { in lookup_vma() 395 GEM_WARN_ON(!list_is_singular(&vm_bo->list.gpuva)); in lookup_vma() 415 struct drm_gpuvm_bo *vm_bo, *tmp; in put_iova_spaces() local 419 drm_gem_for_each_gpuvm_bo_safe (vm_bo, tmp, obj) { in put_iova_spaces() 422 if (vm && vm_bo->vm != vm) in put_iova_spaces() 425 drm_gpuvm_bo_get(vm_bo); in put_iova_spaces() 427 drm_gpuvm_bo_for_each_va_safe (vma, vmatmp, vm_bo) { in put_iova_spaces() 433 drm_gpuvm_bo_put(vm_bo); in put_iova_spaces() [all …]
|
| H A D | msm_gem_vma.c | 372 struct drm_gpuvm_bo *vm_bo; in msm_gem_vma_new() local 422 vm_bo = drm_gpuvm_bo_obtain_locked(&vm->base, obj); in msm_gem_vma_new() 423 if (IS_ERR(vm_bo)) { in msm_gem_vma_new() 424 ret = PTR_ERR(vm_bo); in msm_gem_vma_new() 428 drm_gpuvm_bo_extobj_add(vm_bo); in msm_gem_vma_new() 429 drm_gpuva_link(&vma->base, vm_bo); in msm_gem_vma_new() 430 GEM_WARN_ON(drm_gpuvm_bo_put(vm_bo)); in msm_gem_vma_new() 445 msm_gem_vm_bo_validate(struct drm_gpuvm_bo *vm_bo, struct drm_exec *exec) in msm_gem_vm_bo_validate() argument 447 struct drm_gem_object *obj = vm_bo->obj; in msm_gem_vm_bo_validate() 455 drm_gpuvm_bo_for_each_va (vma, vm_bo) { in msm_gem_vm_bo_validate() [all …]
|
| H A D | msm_gem_submit.c | 368 submit->bos[i].vm_bo = drm_gpuvm_bo_get(vma->vm_bo); in submit_pin_objects() 537 struct drm_gpuvm_bo *vm_bo = submit->bos[i].vm_bo; in msm_submit_retire() local 540 drm_gpuvm_bo_put(vm_bo); in msm_submit_retire()
|
| H A D | msm_gem.h | 479 struct drm_gpuvm_bo *vm_bo; member
|
| /linux/drivers/gpu/drm/amd/amdgpu/ |
| H A D | amdgpu_vm.c | 154 amdgpu_vm_bo_lock_lists(struct amdgpu_vm_bo_base *vm_bo) in amdgpu_vm_bo_lock_lists() argument 156 struct amdgpu_vm *vm = vm_bo->vm; in amdgpu_vm_bo_lock_lists() 157 struct amdgpu_bo *bo = vm_bo->bo; in amdgpu_vm_bo_lock_lists() 169 spin_lock(&vm_bo->vm->individual_lock); in amdgpu_vm_bo_lock_lists() 174 static void amdgpu_vm_bo_unlock_lists(struct amdgpu_vm_bo_base *vm_bo) in amdgpu_vm_bo_unlock_lists() argument 176 if (amdgpu_vm_is_bo_always_valid(vm_bo->vm, vm_bo->bo)) in amdgpu_vm_bo_unlock_lists() 177 amdgpu_vm_assert_locked(vm_bo->vm); in amdgpu_vm_bo_unlock_lists() 179 spin_unlock(&vm_bo->vm->individual_lock); in amdgpu_vm_bo_unlock_lists() 204 static void amdgpu_vm_bo_evicted(struct amdgpu_vm_bo_base *vm_bo) in amdgpu_vm_bo_evicted() argument 208 lists = amdgpu_vm_bo_lock_lists(vm_bo); in amdgpu_vm_bo_evicted() [all …]
|
| H A D | amdgpu_dma_buf.c | 528 for (bo_base = bo->vm_bo; bo_base; bo_base = bo_base->next) { in amdgpu_dma_buf_move_notify()
|
| H A D | amdgpu_object.c | 673 bo->vm_bo = NULL; in amdgpu_bo_create() 1312 WARN_ON(abo->vm_bo); in amdgpu_bo_release_notify()
|
| H A D | amdgpu_gem.c | 1088 for (base = robj->vm_bo; base; base = base->next) in amdgpu_gem_op_ioctl()
|
| H A D | amdgpu_amdkfd_gpuvm.c | 2264 bo, bo->vm_bo->vm->process_info->eviction_fence); in amdgpu_amdkfd_map_gtt_bo_to_gart()
|
| /linux/drivers/gpu/drm/panthor/ |
| H A D | panthor_mmu.c | 208 struct drm_gpuvm_bo *vm_bo; member 1153 static void panthor_vm_bo_free(struct drm_gpuvm_bo *vm_bo) in panthor_vm_bo_free() argument 1155 struct panthor_gem_object *bo = to_panthor_bo(vm_bo->obj); in panthor_vm_bo_free() 1166 kfree(vm_bo); in panthor_vm_bo_free() 1193 if (op_ctx->map.vm_bo) in panthor_vm_cleanup_op_ctx() 1194 drm_gpuvm_bo_put_deferred(op_ctx->map.vm_bo); in panthor_vm_cleanup_op_ctx() 1389 op_ctx->map.vm_bo = drm_gpuvm_bo_obtain_prealloc(preallocated_vm_bo); in panthor_vm_prepare_map_op_ctx() 1399 drm_gpuvm_bo_extobj_add(op_ctx->map.vm_bo); in panthor_vm_prepare_map_op_ctx() 2220 struct drm_gpuvm_bo *vm_bo) in panthor_vma_link() argument 2225 drm_gpuva_link(&vma->base, vm_bo); in panthor_vma_link() [all …]
|
| H A D | panthor_gem.c | 124 struct drm_gpuvm_bo *vm_bo; in is_gpu_mapped() local 127 drm_gem_for_each_gpuvm_bo(vm_bo, &bo->base) { in is_gpu_mapped() 129 if (vm_bo->evicted) in is_gpu_mapped() 1421 struct drm_gpuvm_bo *vm_bo, *last_locked = NULL; in panthor_gem_try_evict_no_resv_wait() local 1449 drm_gem_for_each_gpuvm_bo(vm_bo, obj) { in panthor_gem_try_evict_no_resv_wait() 1450 struct dma_resv *resv = drm_gpuvm_resv(vm_bo->vm); in panthor_gem_try_evict_no_resv_wait() 1460 last_locked = vm_bo; in panthor_gem_try_evict_no_resv_wait() 1483 drm_gem_for_each_gpuvm_bo(vm_bo, obj) { in panthor_gem_try_evict_no_resv_wait() 1484 struct dma_resv *resv = drm_gpuvm_resv(vm_bo->vm); in panthor_gem_try_evict_no_resv_wait() 1491 if (last_locked == vm_bo) in panthor_gem_try_evict_no_resv_wait()
|
| /linux/drivers/gpu/drm/nouveau/ |
| H A D | nouveau_uvmm.c | 65 struct drm_gpuvm_bo *vm_bo; member 1194 struct drm_gpuvm_bo *vm_bo = bop->vm_bo; in bind_link_gpuvas() local 1201 drm_gpuva_link(&new->map->va, vm_bo); in bind_link_gpuvas() 1207 drm_gpuva_link(&new->prev->va, va->vm_bo); in bind_link_gpuvas() 1209 drm_gpuva_link(&new->next->va, va->vm_bo); in bind_link_gpuvas() 1287 op->vm_bo = drm_gpuvm_bo_obtain_locked(&uvmm->base, obj); in nouveau_uvmm_bind_job_submit() 1289 if (IS_ERR(op->vm_bo)) in nouveau_uvmm_bind_job_submit() 1290 return PTR_ERR(op->vm_bo); in nouveau_uvmm_bind_job_submit() 1292 drm_gpuvm_bo_extobj_add(op->vm_bo); in nouveau_uvmm_bind_job_submit() 1605 if (!IS_ERR_OR_NULL(op->vm_bo)) { in nouveau_uvmm_bind_job_cleanup() [all …]
|
| /linux/drivers/gpu/drm/xe/ |
| H A D | xe_vm.c | 344 static int xe_gpuvm_validate(struct drm_gpuvm_bo *vm_bo, struct drm_exec *exec) in xe_gpuvm_validate() argument 346 struct xe_vm *vm = gpuvm_to_vm(vm_bo->vm); in xe_gpuvm_validate() 347 struct xe_bo *bo = gem_to_xe_bo(vm_bo->obj); in xe_gpuvm_validate() 352 drm_gpuvm_bo_for_each_va(gpuva, vm_bo) in xe_gpuvm_validate() 358 vm_bo->evicted = false; in xe_gpuvm_validate() 369 vm_bo->evicted = false; in xe_gpuvm_validate() 1134 struct drm_gpuvm_bo *vm_bo; in xe_vma_create() local 1157 vm_bo = drm_gpuvm_bo_obtain_locked(vma->gpuva.vm, &bo->ttm.base); in xe_vma_create() 1158 if (IS_ERR(vm_bo)) { in xe_vma_create() 1160 return ERR_CAST(vm_bo); in xe_vma_create() [all …]
|
| H A D | xe_bo.c | 769 struct drm_gpuvm_bo *vm_bo; in xe_bo_move_dmabuf() 783 drm_gem_for_each_gpuvm_bo(vm_bo, obj) { in xe_bo_move_dmabuf() 784 struct xe_vm *vm = gpuvm_to_vm(vm_bo->vm); in xe_bo_move_dmabuf() 788 drm_gpuvm_bo_evict(vm_bo, true); 817 drm_gpuvm_bo_for_each_va(gpuva, vm_bo) { in xe_bo_move_notify() 1344 struct drm_gpuvm_bo *vm_bo; 1352 drm_gem_for_each_gpuvm_bo(vm_bo, &bo->base) { in xe_bo_notifier_prepare_pinned() 1353 if (xe_vm_is_validating(gpuvm_to_vm(vm_bo->vm))) in xe_bo_notifier_prepare_pinned() 675 struct drm_gpuvm_bo *vm_bo; xe_bo_trigger_rebind() local 1250 struct drm_gpuvm_bo *vm_bo; xe_bo_eviction_valuable() local
|