aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index 5d7d7900ccab..015613b4f98b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -2344,6 +2344,35 @@ struct amdgpu_bo_va_mapping *amdgpu_vm_bo_lookup_mapping(struct amdgpu_vm *vm,
2344} 2344}
2345 2345
2346/** 2346/**
2347 * amdgpu_vm_bo_trace_cs - trace all reserved mappings
2348 *
2349 * @vm: the requested vm
2350 * @ticket: CS ticket
2351 *
2352 * Trace all mappings of BOs reserved during a command submission.
2353 */
2354void amdgpu_vm_bo_trace_cs(struct amdgpu_vm *vm, struct ww_acquire_ctx *ticket)
2355{
2356 struct amdgpu_bo_va_mapping *mapping;
2357
2358 if (!trace_amdgpu_vm_bo_cs_enabled())
2359 return;
2360
2361 for (mapping = amdgpu_vm_it_iter_first(&vm->va, 0, U64_MAX); mapping;
2362 mapping = amdgpu_vm_it_iter_next(mapping, 0, U64_MAX)) {
2363 if (mapping->bo_va && mapping->bo_va->base.bo) {
2364 struct amdgpu_bo *bo;
2365
2366 bo = mapping->bo_va->base.bo;
2367 if (READ_ONCE(bo->tbo.resv->lock.ctx) != ticket)
2368 continue;
2369 }
2370
2371 trace_amdgpu_vm_bo_cs(mapping);
2372 }
2373}
2374
2375/**
2347 * amdgpu_vm_bo_rmv - remove a bo to a specific vm 2376 * amdgpu_vm_bo_rmv - remove a bo to a specific vm
2348 * 2377 *
2349 * @adev: amdgpu_device pointer 2378 * @adev: amdgpu_device pointer