amdgpu_vm_bo_update_shared(9)
π amdgpu_vm_bo_update_shared(9) β Kernel API Manual, section 9, bestie
okay so you found yourself in the AMDGPU VM corner of the kernel, huh? this one's a little callback with a big job. it lives in the <pink>Kernel API Manual</pink>, section 9, and it's about to make your buffer object's whole social status update. let's get into it π«Ά
β¨ NAME β¨
amdgpu_vm_bo_update_shared β the callback that fires when a bo gets shared or unshared π«
πΈ SYNOPSIS πΈ
void amdgpu_vm_bo_update_shared (struct amdgpu_bo *bo );
that's it. one arg. no return value. icon behavior, honestly β¨
π ARGUMENTS π
boβ the amdgpu buffer object in question π§ the main character of this whole function, fr fr
π DESCRIPTION π
so here's the vibe: this is the callback that runs when a bo gets shared or unshared, and it updates the per-VM stats for all the VMs β but only if needed β flipping them from private to shared, or the other way around. lowkey just a little bookkeeping slay, but the "if needed" part is doing a lot of the work so nobody's out here doing pointless updates π
think of it as the group-chat notification when someone's relationship status changes from "private" to "shared." the VMs need to know. and this function is the one telling them π₯
π SEE ALSO π
the kernel file ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c and honestly the entire extended cinematic universe of GPUVM friends β every single one of them, no skips, no cap:
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_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_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 friend group ππ
anyway bestie, that's the page. documented out of ./drivers/gpu/drm/amd/amdgpu, dated October 2026, under the name amdgpu_vm_bo_update_shared(9) β go forth and update those shared stats, mwah ππ
π¦ 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