amdgpu_vm_update_range(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ NAME πŸŽ€

amdgpu_vm_update_range β€” bestie, we're updating a range in the vm page table πŸ’…βœ¨

(also, hi, this is a page from the Kernel API Manual, so grab a snack πŸ“)


πŸ¦‹ SYNOPSIS πŸ¦‹

int amdgpu_vm_update_range (struct amdgpu_device *adev , struct
amdgpu_vm *vm , bool immediate , bool unlocked , bool flush_tlb , bool
allow_override , struct amdgpu_sync *sync , uint64_t start , uint64_t
last , uint64_t flags , uint64_t offset , uint64_t vram_base , struct
ttm_resource *res , dma_addr_t *pages_addr , struct dma_fence **fence );

✨ ARGUMENTS ✨

okay so here's the whole cast, no skips, everyone gets their moment πŸ‘‘

  • adev β€” the amdgpu_device pointer you're using for commands. main character energy, everything routes through it 🫢
  • vm β€” the VM whose range we're updating. the star of the show, literally what we're editing 🌈
  • immediate β€” immediate submission in a page fault. like, right now right now ⚑
  • unlocked β€” unlocked invalidation during MM callback. living dangerously (it's fine, it's by design) πŸ™ˆ
  • flush_tlb β€” trigger tlb invalidation once the update has completed. the cleanup era πŸ’…
  • allow_override β€” change MTYPE for local NUMA nodes. yes, you're allowed to override, go off πŸ‘‘
  • sync β€” the fences we need to sync to. gotta wait for your friends before you leave 🧚
  • start β€” start of the mapped range. where the story begins ⭐
  • last β€” last mapped entry. where it ends, periodt πŸ”₯
  • flags β€” flags for the entries. the little details that matter, iykyk πŸ’œ
  • offset β€” offset into nodes and pages_addr. don't forget this one, bestie 😭
  • vram_base β€” base for vram mappings. the foundation of it all πŸŽ€
  • res β€” ttm_resource to map. the actual thing getting mapped, iconic 🌸
  • pages_addr β€” DMA addresses to use for mapping. the addresses, slay πŸ’€
  • fence β€” optional resulting fence. optional!! no pressure πŸ’–

πŸ’« DESCRIPTION πŸ’«

Fill in the page table entries between start and last. That's it. That's the vibe β€” you're filling in entries across that range, no cap πŸ’…βœ¨


🌟 RETURN 🌟

0 for success, negative erro code for failure. so like, zero = you ate, negative = something went sideways 😭


πŸ”₯ SEE ALSO πŸ”₯

this list is long, bestie, but every single one of them is here because we don't do half-finished over here πŸ’–

Kernel file ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c, 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_validate(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_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)


that's the whole page, bestie, you're officially educated πŸŽ“πŸ’…

source/version + date, right at the bottom: ./drivers/gpu/drm/amd/amdgpu Β· October 2026 Β· amdgpu_vm_update_range(9) β€” mwah, love u, go update some page tables πŸ«ΆπŸ’–βœ¨

πŸ“¦ where this page comes from