drm_gpuvm_resv_object_alloc(9)
π drm_gpuvm_resv_object_alloc(9) β from the Kernel API Manual, bestie π
okay so real talk, this one is short but it's important, so pay attention π
β¨ NAME β¨
drm_gpuvm_resv_object_alloc β literally just allocates a dummy &drm_gem_object, no cap π«Ά
πΈ SYNOPSIS πΈ
struct drm_gem_object * drm_gpuvm_resv_object_alloc (struct drm_device *drm );
π¦ ARGUMENTS π¦
drmβ the driver'sdrm_device, that's it, that's the whole arg π
π DESCRIPTION π
So what this does is it allocates a dummy drm_gem_object β¨ and the whole point of this lil guy is that you can pass it to drm_gpuvm_init so it can serve as the root GEM object β like the main character π β providing the drm_resv that's shared across drm_gem_objects local to a single GPUVM. iykyk π
π RETURN π
- on success β you get the
drm_gem_objectπ - on failure β
NULLπ (vibe check failed, handle it)
π SEE ALSO π
okay this list is a lot but here's every single one, bestie, in order, no skipping π«Ά:
- 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_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_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, periodt π β¨
cute lil sign-off from me to you: this one lives in ./drivers/gpu/drm, dated October 2026, and it's drm_gpuvm_resv_object_alloc(9) β go be the root GEM object of your own GPUVM, bestie ππ¦π
π¦ 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