kvm_pgtable_...ree_unlinked(9)
π kvm_pgtable_...ree_unlinked(9) π
okay bestie, welcome to the Kernel API Manual β¨ this one's about kvm_pgtable_stage2_free_unlinked, and honestly? it's giving "quiet cleanup crew, main character energy" π§Ήπ
no cap.
πΈ NAME πΈ
kvm_pgtable_stage2_free_unlinked β frees an unlinked stage-2 paging structure. literally just yeets it into the void π«Ά
β¨ SYNOPSIS β¨
void kvm_pgtable_stage2_free_unlinked (struct kvm_pgtable_mm_ops *mm_ops
, void *pgtable , s8 level );
that's the whole vibe check, bestie β void return, three args, no drama π
π ARGUMENTS π
mm_opsβ the memory management callbacks π« like, the little instruction manual for how memory gets handled around herepgtableβ the unlinked stage-2 paging structure that's getting freed π¦ she's the one being sent offlevelβ the level of the stage-2 paging structure being freed π ans8, so keep that in mind, k? iykyk
π DESCRIPTION π
so here's the tea β the page-table is assumed to be unreachable by any hardware walkers prior to freeing β like, nobody's looking at her, she's off the grid, no hardware walker is gonna stroll up π and because of that assumption, no TLB invalidation is performed. none. zero. not a single flush π₯
β οΈ bestie, clock that word "assumed" β that's a precondition, not a vibe suggestion. if a hardware walker can still reach this page-table, that's on you, not on the function π
π SEE ALSO π
the whole squad, fr fr π
- Kernel file
./arch/arm64/include/asm/kvm_pgtable.h 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(9)kvm_pgtable_stage2_destroy_range(9)kvm_pgtable_stage2_destroy_pgd(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)
and that's the whole page, bestie!! πβ¨ this lil masterpiece lives at ./arch/arm64/include/asm, it's dated October 2026, and it answers to the name kvm_pgtable_...ree_unlinked(9) π mwah, go free some page tables 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