amdgpu_vm_bo_unmap(9)
π amdgpu_vm_bo_unmap(9) β the Kernel API Manual, bestie edition π
okay so welcome to the glow-up of amdgpu_vm_bo_unmap(9), straight out of the Kernel API Manual. this is the little function that un-maps a buffer object from a VM. it's giving "breakup but make it tidy" energy, and honestly? iconic. let's get into it β¨
πΈ NAME πΈ
amdgpu_vm_bo_unmap β remove bo mapping from vm. that's the whole vibe, no cap. π¦
β¨ SYNOPSIS β¨
int amdgpu_vm_bo_unmap (struct amdgpu_device *adev , struct amdgpu_bo_va
*bo_va , uint64_t saddr );
so you call it with three things and it hands you back an int. simple, clean, hydrated. π§
π«Ά ARGUMENTS π«Ά
adevβ theamdgpu_devicepointer, aka your whole GPU situation. main character energy, fr. πbo_vaβ thebo_vayou're pulling the address out of. this is the one getting un-mapped. πsaddrβ where the BO is mapped. like, the address. the spot. that one. π
π₯ DESCRIPTION π₯
so basically this removes a mapping of the BO at the specified address from the VM. that's it, that's the function. literally its whole job and it does it slayfully π
β οΈ okay but here's the part you CANNOT skip, bestie: the object has to be reserved and unreserved outside! this function does not do that for you. not its lane, not its problem. so lock it up yourself before, and unlock it after. do not make me come over there π
β RETURN β
0for success π (we love a zero)- error for failure π (we do not love this, but it happens)
π SEE ALSO π
the friend group. the whole group chat. every single one of them, fr fr:
- 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_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_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)
and that's the whole page, bestie π«Ά this came to you from ./drivers/gpu/drm/amd/amdgpu, dated October 2026, and it's amdgpu_vm_bo_unmap(9) β the one and only. go forth, reserve and unreserve that object properly, and remember: un-map responsibly ππΈβ¨
π¦ 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