drm_gpuvm_bo_find(9)
π drm_gpuvm_bo_find(9) β from the Kernel API Manual, bestie π
okay so real quick, this whole page is literally about drm_gpuvm_bo_find(9), and yes the manual name is right there in the title because we're thorough like that β¨
πΈ NAME πΈ
drm_gpuvm_bo_find β find the &drm_gpuvm_bo for the given &drm_gpuvm and &drm_gem_object
likeβ¦ it's a finder. it finds. iconic behavior tbh π«Ά
β¨ SYNOPSIS β¨
struct drm_gpuvm_bo * drm_gpuvm_bo_find (struct drm_gpuvm *gpuvm ,
struct drm_gem_object *obj );
π¦ ARGUMENTS π¦
gpuvmβ thedrm_gpuvmthe obj is mapped in. it's the whole vibe, the address space, the stage πobjβ thedrm_gem_objectbeing mapped in thegpuvm. the guest of honor π
π DESCRIPTION π
okay so here's the tea: this function finds the drm_gpuvm_bo that represents the combination of the given drm_gpuvm and drm_gem_object β like the two of them together, the duo, the pairing π
and bestie, if it does find it? it increases the reference count of the drm_gpuvm_bo accordingly. so you're not just looking at it, you're taking a reference. the way that this function is literally committing ππ
heads up β that refcount bump is real. if you're not gonna use it, you're gonna wanna give it back. just saying π
π RETURN π
- a pointer to the
drm_gpuvm_boon success π NULLon failure π (it's giving "not found, no notes")
π SEE ALSO π
the reading list, fr fr β bring snacks π
- Kernel file
./drivers/gpu/drm/drm_gpuvm.c 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_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_unlink_defer(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)
and that's the whole page, bestie!! mwah π this one lives in ./drivers/gpu/drm, and the version/date stamp on it is October 2026 β so yeah, future-coded of the kernel docs ngl. go find your drm_gpuvm_bo, take your refcount, and slay π₯ππ
π¦ 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