amdgpu_vm_map_gart(9)
okay so bestie, welcome to amdgpu_vm_map_gart(9) β yes that's the whole title, yes it's from the Kernel API Manual, no we are not skipping a single letter of it π
this one is a tiny little function but she is important, so let's get into it.
β¨ NAME β¨
amdgpu_vm_map_gart β resolve gart mapping of addr πΊοΈ
That's it. That's the whole vibe. She takes an addr and she resolves the gart mapping of it. Iconic, minimal, no notes.
π SYNOPSIS π
uint64_t amdgpu_vm_map_gart (const dma_addr_t *pages_addr , uint64_t addr );
Look at her. uint64_t going in, uint64_t coming out, one const dma_addr_t * sitting in the middle like she owns the place π
π¦ ARGUMENTS π¦
pages_addrβ optional DMA address to use for lookup. Optional! She's flexible like that. It's aconst dma_addr_t *, so hands off the data, please and thank you πaddrβ the unmapped addr. The one we're trying to figure out. The main character of this whole operation, honestly.
πΈ DESCRIPTION πΈ
So here's the teaaaa β β this function looks up the physical address of the page that the pte resolves to. That's the whole job. You hand her an addr, she goes and finds the physical page behind the page table entry. Like a group chat where someone asks "who has the aux" and you immediately know who has the aux.
Lowkey the whole point is the translation, and she ate. No cap.
β RETURN β
She returns the pointer for the page table entry. That's your answer, bestie β go wild with it π«Ά
π₯ SEE ALSO π₯
okay so this is the part where the manpage decides to introduce you to the entire extended family π like a wedding where you have to greet everyone. But they're all important, so here we go, every single one, no skipping:
- 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_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)
Like I said. The whole family. Every auntie, every cousin, every (9) π« but they're all icons, so π
and that's the page, bestie! π This little gem lives in ./drivers/gpu/drm/amd/amdgpu and the version stamp says October 2026 β so mark your calendar, screenshot this, send it to the group chat πΈπ bye ily, go resolve some gart mappings π§β¨
π¦ 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