drm_gpuvm_validate(9)
π
drm_gpuvm_validate β the drm_gpuvm kernel-API page, bestie edition π
okay so this is a page from the Kernel API Manual, and it's all about one little function called drm_gpuvm_validate. yes it's a kernel thing. no you don't have to be scared. let's go πΈ
β¨ NAME β¨
drm_gpuvm_validate β literally the function that validates all the BOs marked as evicted π
π¦ SYNOPSIS π¦
int drm_gpuvm_validate (struct drm_gpuvm *gpuvm , struct drm_exec *exec
);
that's it. that's the whole signature. two args, one int out the front, periodt π
π ARGUMENTS π
gpuvmβ thedrm_gpuvmthat's gonna validate the evicted BOs. this is the main character of the call, ngl π«Άexecβ thedrm_execinstance that's used for locking the GPUVM. it's giving "the bouncer at the door" energy π₯
π DESCRIPTION π
so what does it actually do? it calls the drm_gpuvm_ops::vm_bo_validate callback for all the evicted buffer objects that are being mapped in the given drm_gpuvm. every single one. no skipping, no shortcuts π
likeβ¦ it goes through the evicted BOs, and for each one it pings that callback. that's the whole vibe. iconic honestly β¨
β RETURN β
0on success β slay π- a negative error code on failure β it's giving "something went wrong, check the code" π
π SEE ALSO π
buckle up bestie, this list is long, and every single one of these is staying in here because we don't do omissions in this house π«Ά
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_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)
lowkey a whole reading list, but every link is right there for you β go click around, iykyk ππ«
okay that's the whole page!! mwah π this one came from the source dir ./drivers/gpu/drm, and it's dated October 2026 β so like, from the future bestie, no cap π°οΈβ¨ bye!! π§ββοΈπ
π¦ 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