ENUM KVM_PGTABLE_WALK_FLAGS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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