kvm_pgtable_stage2_mkyoung(9)
π kvm_pgtable_stage2_mkyoung(9) β Kernel API Manual energy β¨
okay bestie, so you're in the Kernel API Manual and the page you opened is kvm_pgtable_stage2_mkyoung(9) β yes it's a mouthful, no we're not changing it, it's iconic in its own way π
πΈ NAME πΈ
kvm_pgtable_stage2_mkyoung β literally just "set the access flag in a page-table entry." that's the whole vibe. one job. she does it. periodt π
β¨ SYNOPSIS β¨
void kvm_pgtable_stage2_mkyoung (struct kvm_pgtable *pgt , u64 addr ,
enum kvm_pgtable_walk_flags flags );
look at her. void. she returns nothing and still ate π«Ά
π¦ ARGUMENTS π¦
pgtβ the page-table structure, and it has to be initialised bykvm_pgtable_stage2_init*(). like, she needs to be set up before you show up, yk? no init, no entry π«addrβ the intermediate physical address that identifies which page-table entry we're talking about. this is how you find her in the crowd π«flagsβ flags that control the page-table walk (ex. a shared walk). yes king, you get to steer π
π DESCRIPTION π
here's the tea: the offset of addr within a page is ignored. not filtered, not checked, ignored. she doesn't care what byte of the page you're pointing at π
and then β if there's a valid, leaf page-table entry that's used to translate addr, she sets the access flag in that entry. that's it. that's the function. note the "if" though, bestie, because if there's no valid leaf entry, there's nothing to flag and she's not out here inventing one π
π₯ SEE ALSO π₯
- 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_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_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, that's the whole friend group right there. the entire kvm_pgtable squad, all tagged in the group chat π§π
quick vibe check before you go: this page lives under ./arch/arm64/include/asm, and the manual's dated October 2026 β so yeah, she's from the future (or at least from the arm64 tree), and that's on periodt. go set that access flag, bestie, you got this πβ¨π
π¦ 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