ENUM KVM_PGTABLE_WALK_FLAGS(9)
π enum kvm_pgtable_walk_flags(9) β like, the flags that steer a depth-first page-table walk
okay so bestie, welcome to the Kernel API Manual β¨ this one's a little enum from the arm64 KVM page-table world, and honestly? it's giving "small but powerful." it's literally just a pile of flags that tell a depth-first page-table walk how to behave. no cap. π¦
πΈ NAME πΈ
enum kvm_pgtable_walk_flags β flags to control a depth-first page-table walk. that's it, that's the whole vibe. π
β¨ SYNOPSIS β¨
enum kvm_pgtable_walk_flags {
KVM_PGTABLE_WALK_LEAF ,
KVM_PGTABLE_WALK_TABLE_PRE ,
KVM_PGTABLE_WALK_TABLE_POST ,
KVM_PGTABLE_WALK_SHARED ,
KVM_PGTABLE_WALK_IGNORE_EAGAIN ,
KVM_PGTABLE_WALK_SKIP_BBM_TLBI ,
KVM_PGTABLE_WALK_SKIP_CMO
};
like, seven whole constants. a whole little squad. π
π Constants π
each one of these is a different flavor of "hey walker, do this":
KVM_PGTABLE_WALK_LEAFβ visit leaf entries, including invalid entries. yes bestie, invalid ones too, we're not skipping anybody at this party πKVM_PGTABLE_WALK_TABLE_PREβ visit table entries before their children. pre-game energy. arrive early, say hi to the tables first πKVM_PGTABLE_WALK_TABLE_POSTβ visit table entries after their children. opposite vibe, you show up fashionably late after the kids have all been visited π¦KVM_PGTABLE_WALK_SHAREDβ indicates the page-tables may be shared with other software walkers. so like, other walkers might be in the group chat too. be normal about it π«ΆKVM_PGTABLE_WALK_IGNORE_EAGAINβ don't terminate the walk early if the walker returns-EAGAIN. so if the walker's like "ugh try again later," this flag is like "no babe, keep going" βKVM_PGTABLE_WALK_SKIP_BBM_TLBIβ visit and update table entries without Break-before-make's TLB invalidation. skipping the whole break-before-make TLB invalidation step. (respect it but like, know what you're doing, okay? π)KVM_PGTABLE_WALK_SKIP_CMOβ visit and update table entries without Cache maintenance operations required. same deal, no CMO required, we're moving fast π₯
π SEE ALSO π
so much lore, bestie. the header lives in the kernel file ./arch/arm64/include/asm/kvm_pgtable.h, and here's the whole extended universe of related pages:
struct kvm_pgtable_mm_ops(9), enum kvm_pgtable_stage2_flags(9), enum kvm_pgtable_prot(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_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)
like, go read them. i'll wait. absolutely iconic reading list π
and that's the whole page, bestie!! πβ¨
cute little sign-off: this one lives over in ./arch/arm64/include/asm, and the page is dated October 2026 β mwah, love that for us ππ«Ά
π¦ 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