kvm_pgtable_stage2_destroy(9)
β¨ NAME β¨
okay so this is the kvm_pgtable_stage2_destroy(9) page from the Kernel API Manual, and it does exactly one iconic thing: Destroy an unused guest stage-2 page-table. π
π SYNOPSIS π
void kvm_pgtable_stage2_destroy (struct kvm_pgtable *pgt );
πΈ ARGUMENTS πΈ
pgtβ the page-table structure, already initialised bykvm_pgtable_stage2_init*(). no cap, that asterisk matters. π«Ά
π¦ DESCRIPTION π¦
So here's the vibe check, bestie: the page-table is assumed to be unreachable by any hardware walkers prior to freeing, and therefore no TLB invalidation is performed. Not one. Zero. None. It's giving "you already handled that part, right?" energy π β so don't come for this function expecting it to do TLB cleanup for you.
π SEE ALSO π
First up, the Kernel file ./arch/arm64/include/asm/kvm_pgtable.h β go read it, iykyk. Then the whole squad:
struct kvm_pgtable_mm_ops(9)enum kvm_pgtable_stage2_flags(9)enum kvm_pgtable_prot(9)enum kvm_pgtable_walk_flags(9)struct kvm_pgtable_walker(9)struct kvm_pgtable(9)kvm_pgtable_hyp_init(9)kvm_pgtable_hyp_destroy(9)kvm_pgtable_hyp_map(9)kvm_pgtable_hyp_unmap(9)kvm_get_vtcr(9)kvm_pgtable_stage2_pgd_size(9)__kvm_pgtable_stage2_init(9)kvm_pgtable_stage2_destroy_range(9)kvm_pgtable_stage2_destroy_pgd(9)kvm_pgtable_stage2_free_unlinked(9)kvm_pgtable_stage2_create_unlinked(9)kvm_pgtable_stage2_map(9)kvm_pgtable_stage2_annotate(9)kvm_pgtable_stage2_unmap(9)kvm_pgtable_stage2_wrprotect(9)kvm_pgtable_stage2_mkyoung(9)kvm_pgtable_stage2_test_clear_young(9)kvm_pgtable_stage2_relax_perms(9)kvm_pgtable_stage2_split(9)kvm_pgtable_walk(9)kvm_pgtable_get_leaf(9)kvm_pgtable_stage2_pte_prot(9)kvm_pgtable_hyp_pte_prot(9)kvm_tlb_flush_vmid_range(9)
mwah π this page lives under ./arch/arm64/include/asm, is dated October 2026, and is the kvm_pgtable_stage2_destroy(9) page β periodt. ππ
π¦ 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