drm_gpuva_map(9)
π drm_gpuva_map(9) β the Kernel API Manual glow-up β¨
okay so bestie, we're in the Kernel API Manual and today's main character is drm_gpuva_map(9). it's a little helper baddie that slides a drm_gpuva into place using a drm_gpuva_op_map, and honestly? iconic. π
πΈ SYNOPSIS πΈ
void drm_gpuva_map (struct drm_gpuvm *gpuvm , struct drm_gpuva *va ,
const struct drm_gpuva_op_map *op );
no cap, that's the whole signature. it returns nothing (it's void, she's mysterious like that π
) and it takes three things. let's get into them π«Ά
β¨ ARGUMENTS β¨
gpuvmβ thedrm_gpuvm. the whole vibe container. the mothership πΈvaβ thedrm_gpuvato insert. this is the one getting placed, she's the guest of honour πopβ thedrm_gpuva_op_mapto initializevawith. it's the blueprint, the inspo, the Pinterest board π
π¦ DESCRIPTION π¦
so what actually happens? it initializes the va from the op, and then it inserts it into the given gpuvm. two steps, no drama, one function. literally it's giving "setup then yeet into the tree." πΈ
fr fr that's the entire description β init fromop, insert intogpuvm. don't overthink her, she's a helper π
π SEE ALSO π
okay this list is LONG but we do not skip sections in this house, every single one is getting its moment ππ
- 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_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_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)
like, that's the whole friend group and they all ate π₯
so yeah β init from op, insert into gpuvm, say thank you to the helper, and go read the rest of the gpuvm lore iykyk π
β¨
signed, sealed, delivered from ./drivers/gpu/drm, dated October 2026 β mwah, go touch grass (or a GPU) πΈπ«Άπ
π¦ 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