vm_normal_folio(9)
β¨ vm_normal_folio(9) β¨
okay bestie, so this is a page from the Kernel API Manual and it's about the little function vm_normal_folio β she's a whole vibe in mm/memory.c, and honestly? iconic. π
πΈ NAME πΈ
vm_normal_folio β literally just getting the struct folio that goes with a PTE π«Ά
π¦ SYNOPSIS π¦
struct folio * vm_normal_folio (struct vm_area_struct *vma , unsigned
long addr , pte_t pte );
like, she takes three things and gives you back a struct folio * β no cap β¨
π ARGUMENTS π
vmaβ the VMA that's mapping the pte. like, where this whole thing lives πaddrβ the address where the pte is mapped. the actual spot πpteβ the PTE itself. the main character of this story π
π DESCRIPTION π
so basically: get the struct folio associated with a PTE. that's it, that's the job π
if you wanna know the whole lore about what counts as a "normal" mapping vs a "special" mapping, go read __vm_normal_page β she has all the details, iykyk πβ¨
π RETURN π
she returns the struct folio if this is a "normal" mapping π
she returns NULL if this is a "special" mapping π like okay noted
β SEE ALSO β
kernel file ./mm/memory.c β and the whole squad, fr fr:
free_pgd_range(9)free_pgtables(9)__vm_normal_page(9)vm_normal_page(9)vm_normal_page_pmd(9)vm_normal_folio_pmd(9)vm_normal_page_pud(9)restore_exclusive_pte(9)cond_install_uffd_wp_ptes(9)zap_vma_for_reaping(9)unmap_vmas(9)zap_vma_range_batched(9)zap_vma_range(9)zap_special_vma_range(9)vm_insert_pages(9)vm_insert_page(9)vm_map_pages(9)vm_map_pages_zero(9)vmf_insert_pfn_prot(9)vmf_insert_pfn(9)remap_pfn_range(9)vm_iomap_memory(9)__vmf_anon_prepare(9)finish_mkwrite_fault(9)unmap_mapping_folio(9)unmap_mapping_pages(9)unmap_mapping_range(9)set_pte_range(9)finish_fault(9)mm_account_fault(9)follow_pfnmap_start(9)follow_pfnmap_end(9)generic_access_phys(9)access_remote_vm(9)copy_remote_vm_str(9)folio_zero_user(9)
quick reminder bestie: "normal" gets you a folio, "special" gets you NULL β don't be out here dereferencing without a vibe check π
and that's the page!! sourced from ./mm, dated October 2026, and yeah β vm_normal_folio(9) ate and left no crumbs ππ slay!! π§β¨
π¦ 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