amdgpu_vm_update_range(9)
π 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β theamdgpu_devicepointer 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 andpages_addr. don't forget this one, bestie πvram_baseβ base for vram mappings. the foundation of it all πresβttm_resourceto 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
- 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