amdgpu_vm_validate(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… amdgpu_vm_validate β€” the Kernel API Manual, bestie edition ✨

okay so this is a page from the Kernel API Manual (the amdgpu_vm_validate(9) one, yes) and we're gonna get through it together, no cap 🫢


🌸 NAME 🌸

amdgpu_vm_validate β€” literally the function that validates evicted BOs tracked in the VM πŸ’–


✨ SYNOPSIS ✨

int amdgpu_vm_validate (struct amdgpu_device *adev , struct amdgpu_vm
*vm , struct ww_acquire_ctx *ticket , int (*validate)(void *p, struct
amdgpu_bo *bo) , void *param );

that's the whole signature, verbatim, don't come for me πŸŽ€


πŸ¦‹ ARGUMENTS πŸ¦‹

  • adev β€” the amdgpu device pointer, aka the whole GPU's little handle πŸ’«
  • vm β€” the vm that's providing the BOs, she's the one supplying the goods πŸ‘‘
  • ticket β€” an optional reservation ticket used to reserve the VM. optional bestie, optional ✨
  • validate β€” the callback that actually does the validation, the main character of this whole operation ngl
  • param β€” the parameter you hand over to that validation callback 🎁

πŸ”₯ DESCRIPTION πŸ”₯

So here's the vibe: this validates the page table BOs and the per-VM BOs on command submission if it's necessary. iykyk β€” only when it needs to happen, no wasted effort πŸ’…

and if a ticket is given? it also tries to validate the evicted user queue BOs 🌈 but heads up: those must already be reserved with the given ticket. like, that's not optional, they gotta be reserved already, fr fr 🫢


⭐ RETURN ⭐

Validation result. that's it, that's the return πŸ’€


🧚 SEE ALSO 🧚

first up, the kernel file itself: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c β€” go read her πŸ“

and then the whole friend group, in order, every single one of them:

GPUVM(9) , struct amdgpu_prt_cb(9) , struct amdgpu_vm_tlb_seq_struct(9) , amdgpu_vm_assert_locked(9) , amdgpu_vm_is_bo_always_valid(9) , amdgpu_vm_bo_evicted(9) , amdgpu_vm_bo_needs_update(9) , amdgpu_vm_bo_idle(9) , amdgpu_vm_bo_reset_state_machine(9) , amdgpu_vm_update_shared(9) , amdgpu_vm_bo_update_shared(9) , amdgpu_vm_update_stats_locked(9) , amdgpu_vm_update_stats(9) , amdgpu_vm_bo_base_init(9) , amdgpu_vm_lock_pd(9) , amdgpu_vm_lock_individual(9) , amdgpu_vm_move_to_lru_tail(9) , amdgpu_vm_generation(9) , amdgpu_vm_ready(9) , amdgpu_vm_check_compute_bug(9) , amdgpu_vm_need_pipeline_sync(9) , amdgpu_vm_flush(9) , amdgpu_vm_bo_find(9) , amdgpu_vm_map_gart(9) , amdgpu_vm_update_pdes(9) , amdgpu_vm_tlb_seq_cb(9) , amdgpu_vm_tlb_flush(9) , amdgpu_vm_update_range(9) , amdgpu_vm_bo_update(9) , amdgpu_vm_update_prt_state(9) , amdgpu_vm_prt_get(9) , amdgpu_vm_prt_put(9) , amdgpu_vm_prt_cb(9) , amdgpu_vm_add_prt_cb(9) , amdgpu_vm_free_mapping(9) , amdgpu_vm_prt_fini(9) , amdgpu_vm_clear_freed(9) , amdgpu_vm_handle_moved(9) , amdgpu_vm_flush_compute_tlb(9) , amdgpu_vm_bo_add(9) , amdgpu_vm_bo_insert_map(9) , amdgpu_vm_bo_map(9) , amdgpu_vm_bo_replace_map(9) , amdgpu_vm_bo_unmap(9) , amdgpu_vm_bo_clear_mappings(9) , amdgpu_vm_bo_lookup_mapping(9) , amdgpu_vm_bo_trace_cs(9) , amdgpu_vm_bo_del(9) , amdgpu_vm_evictable(9) , amdgpu_vm_bo_invalidate(9) , amdgpu_vm_bo_move(9) , amdgpu_vm_get_block_size(9) , amdgpu_vm_adjust_size(9) , amdgpu_vm_wait_idle(9) , amdgpu_vm_put_task_info(9) , amdgpu_vm_get_task_info_vm(9) , amdgpu_vm_get_task_info_pasid(9) , amdgpu_vm_set_task_info(9) , amdgpu_vm_init(9) , amdgpu_vm_make_compute(9) , amdgpu_vm_fini(9) , amdgpu_vm_manager_init(9) , amdgpu_vm_manager_fini(9) , amdgpu_vm_ioctl(9) , amdgpu_vm_lock_by_pasid(9) , amdgpu_vm_handle_fault(9) , amdgpu_debugfs_vm_bo_info(9) , amdgpu_vm_update_fault_cache(9)

periodt. that's the whole list, all sixty-something of them, untouched πŸ’œ


and that's the page bestie πŸŽ€ source/version bits live in ./drivers/gpu/drm/amd/amdgpu and the date on this one is October 2026 β€” iconic, ahead of its time fr πŸŒΈπŸ’…πŸ«Ά

πŸ“¦ where this page comes from