STRUCT PANTHOR_VM_POOL(9)
okay bestie, welcome to the Kernel API Manual π β today's main character is struct panthor_vm_pool(9), aka the VM pool object. It's giving kernel plumbing but make it cute. β¨
π¦ NAME π¦
struct panthor_vm_pool β VM pool object. That's it, that's the name. No cap. π
β¨ SYNOPSIS β¨
here's the struct in all its glory, copied exactly:
struct panthor_vm_pool {
struct xarray xa;
struct panthor_gem_object *dummy;
};
π«Ά Members π«Ά
okay so it has exactly two members, and they're both important:
xaβ the array used for VM handle tracking. It's the little index card system for VM handles, basically. ποΈdummyβ the dummy object used for sparse mappings. Yes, it's literally calleddummy, and it's doing important work. π
now the lore behind dummy: sparse bindings map virtual address ranges onto a dummy BO in a modulo fashion. Sparse writes are meant to be discarded, and sparse reads are undefined β but those writes are still reflected in the dummy buffer. So we have to keep a dummy object per file context, or data leaks between them. That's the whole reason it exists. Periodt. π«Ά
π¨ bestie, this is the caveat: one dummy object per file context, not shared, because sharing it would leak data between contexts. Not the vibe. π
π SEE ALSO π
the kernel file is ./drivers/gpu/drm/panthor/panthor_mmu.c, and here's the whole friend group:
struct panthor_as_slot(9)struct panthor_mmu(9)struct panthor_vma(9)struct panthor_vm_op_ctx(9)struct panthor_vm(9)struct panthor_vm_bind_job(9)alloc_pt(9)free_pt(9)panthor_vm_has_unhandled_faults(9)panthor_vm_is_unusable(9)panthor_vm_active(9)panthor_vm_idle(9)panthor_vm_as(9)panthor_vm_alloc_va(9)panthor_vm_free_va(9)panthor_vm_get_bo_for_va(9)panthor_vm_pool_create_vm(9)panthor_vm_pool_destroy_vm(9)panthor_vm_pool_get_vm(9)panthor_vm_pool_destroy(9)panthor_vm_pool_create(9)panthor_mmu_suspend(9)panthor_mmu_resume(9)panthor_mmu_pre_reset(9)panthor_mmu_post_reset(9)panthor_vm_put(9)panthor_vm_get(9)panthor_vm_get_heap_pool(9)panthor_vm_heaps_sizes(9)panthor_vm_resv(9)panthor_vm_bind_job_put(9)panthor_vm_create(9)panthor_vm_bind_job_create(9)panthor_vm_bind_job_prepare_resvs(9)panthor_vm_bind_job_update_resvs(9)panthor_vm_bind_exec_sync_op(9)panthor_vm_map_bo_range(9)panthor_vm_unmap_range(9)panthor_vm_prepare_mapped_bos_resvs(9)panthor_mmu_unplug(9)panthor_mmu_init(9)panthor_mmu_debugfs_init(9)panthor_mmu_pt_cache_init(9)panthor_mmu_pt_cache_fini(9)
xoxo, source/version ./drivers/gpu/drm/panthor, dated October 2026, and this whole page is struct panthor_vm_pool(9) πβ¨
π¦ 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