drm_gpuva_unlink_defer(9)
π drm_gpuva_unlink_defer(9) β ok bestie, let's unlink this GPUVA (deferred edition)
So this is a page from the Kernel API Manual, and honestly? It's a little baddie with one job. Let's get into it π
β¨ NAME β¨
drm_gpuva_unlink_defer β unlink a &drm_gpuva with deferred vm_bo cleanup
Like, it unlinks a &drm_gpuva... but the vm_bo cleanup? Deferred. She's not doing it right now, she's doing it later. Main character energy tbh π
πΈ SYNOPSIS πΈ
void drm_gpuva_unlink_defer (struct drm_gpuva *va );
Yeah bestie, that's the whole signature. Returns void, takes one pointer, no drama. Slay.
π¦ ARGUMENTS π¦
vaβ thedrm_gpuvato unlink. That's it. That's the whole argument. She's the one getting unlinked, periodt.
π DESCRIPTION π
Okay so here's the tea: drm_gpuva_unlink_defer is similar to drm_gpuva_unlink, but with two β¨iconicβ¨ little differences:
- it uses
drm_gpuvm_bo_put_deferredinstead, and - it takes the lock for the caller π«Ά
Not you having to grab the lock yourself β no ma'am, she's got you. You just hand her the drm_gpuva and she handles the locking and the deferred cleanup. Lowkey the nicest thing ever.
π SEE ALSO π
The kernel file ./drivers/gpu/drm/drm_gpuvm.c and honestly likeβ¦ every related function, bestie. Buckle up π
Overview(9)Split and Merge(9)Madvise Logic - Splitting and Traversal(9)Locking(9)Examples(9)get_next_vm_bo_from_list(9)for_each_vm_bo_in_list(9)restore_vm_bo_list(9)drm_gpuvm_bo_is_zombie(9)drm_gpuvm_bo_list_add(9)drm_gpuvm_bo_list_del_init(9)drm_gpuvm_bo_list_del(9)drm_gpuvm_range_valid(9)drm_gpuvm_resv_object_alloc(9)drm_gpuvm_init(9)drm_gpuvm_put(9)drm_gpuvm_prepare_vm(9)drm_gpuvm_prepare_objects(9)drm_gpuvm_prepare_range(9)drm_gpuvm_exec_lock(9)drm_gpuvm_exec_lock_array(9)drm_gpuvm_exec_lock_range(9)drm_gpuvm_validate(9)drm_gpuvm_resv_add_fence(9)drm_gpuvm_bo_create(9)drm_gpuvm_bo_put(9)drm_gpuvm_bo_put_deferred(9)drm_gpuvm_bo_deferred_cleanup(9)drm_gpuvm_bo_find(9)drm_gpuvm_bo_obtain_locked(9)drm_gpuvm_bo_obtain_prealloc(9)drm_gpuvm_bo_extobj_add(9)drm_gpuvm_bo_evict(9)drm_gpuva_insert(9)drm_gpuva_remove(9)drm_gpuva_link(9)drm_gpuva_unlink(9)drm_gpuva_find_first(9)drm_gpuva_find(9)drm_gpuvm_interval_empty(9)drm_gpuva_map(9)drm_gpuva_remap(9)drm_gpuva_unmap(9)drm_gpuvm_sm_map(9)drm_gpuvm_sm_unmap(9)drm_gpuvm_sm_map_exec_lock(9)drm_gpuvm_sm_unmap_exec_lock(9)drm_gpuvm_sm_map_ops_create(9)drm_gpuvm_madvise_ops_create(9)drm_gpuvm_sm_unmap_ops_create(9)drm_gpuvm_prefetch_ops_create(9)drm_gpuvm_bo_unmap_ops_create(9)drm_gpuva_ops_free(9)
fr fr, read the whole list. iykyk π the GPUVM lore is deep and you're gonna need it.
Anyway bestie, that's the page! Go unlink something, but defer that cleanup like the icon you are. π
β written from ./drivers/gpu/drm, dated October 2026, and yes the page really is called drm_gpuva_unlink_defer(9). mwah π«Άπ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms