drm_gpuvm_validate(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 β€” the drm_gpuvm that's gonna validate the evicted BOs. this is the main character of the call, ngl 🫢
  • exec β€” the drm_exec instance 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 ⭐

  • 0 on 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