vma_kernel_pagesize(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– vma_kernel_pagesize(9) πŸ’–

okay so this is a page from the Kernel API Manual bestie, and it's genuinely short and sweet β€” we love a low-maintenance icon ✨


🌸 NAME 🌸

vma_kernel_pagesize β€” the default page size granularity for this VMA. that's it, that's the whole vibe πŸŽ€


⭐ SYNOPSIS ⭐

unsigned long vma_kernel_pagesize (struct vm_area_struct *vma );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • vma β€” the user mapping. yeah, that's the whole description, she's mysterious like that πŸ’…

πŸ”₯ DESCRIPTION πŸ”₯

okay bestie, listen up, this is actually important πŸ‘‘

The kernel page size tells you the granularity at which VMA modifications can be performed. The way that works irl: folios in this VMA are gonna be aligned to β€” and be at least the size of β€” the number of bytes this function hands back. no cap, that's the contract 🫢

And here's the plot twist that trips people up: the default kernel page size is not affected by Transparent Huge Pages being in effect. like, THP can be doing its whole main character thing over there and this number does not care. zero. none. unaffected. πŸ™ˆ


πŸ’œ RETURN πŸ’œ

The default page size granularity for this VMA. that's the number, go off πŸ‘‘


✨ SEE ALSO ✨

now listen, this list is LONG and I refuse to leave a single one out, so here's the entire squad in order β€” no skipping, no summarising, we respect every single entry πŸ’€πŸ’–

also the kernel file is ./include/linux/mm.h, go peek if you're curious 🧚

folio_page_idx(9), vma_flag_t(9), fault_flag_allow_retry_first(9),
folio_order(9), folio_reset_order(9), folio_mapcount(9), folio_mapped(9),
thp_order(9), thp_size(9), folio_get(9), folio_put(9), folio_put_refs(9),
folios_put(9), vma_flags_is_cow_mapping(9), vma_is_cow_mapping(9),
vma_desc_is_cow_mapping(9), folio_pfn(9), folio_mk_pte(9), folio_mk_pmd(9),
folio_mk_pud(9), folio_maybe_dma_pinned(9), is_zero_page(9),
is_zero_folio(9), folio_nr_pages(9), folio_next(9), folio_shift(9),
folio_size(9), folio_maybe_mapped_shared(9), folio_expected_ref_count(9),
zap_vma(9), ptdesc_address(9), ptdesc_set_kernel(9), ptdesc_clear_kernel(9),
ptdesc_test_kernel(9), pagetable_alloc(9), pagetable_free(9), vma_lookup(9),
vma_start_pgoff(9), vma_end_pgoff(9), vma_last_pgoff(9),
vma_start_anon_pgoff(9), vma_end_anon_pgoff(9), vma_last_anon_pgoff(9),
mmap_action_remap(9), mmap_action_remap_full(9), mmap_action_ioremap(9),
mmap_action_ioremap_full(9), mmap_action_simple_ioremap(9),
mmap_action_map_kernel_pages(9), mmap_action_map_kernel_pages_full(9),
range_is_subset(9), range_in_vma(9), range_in_vma_desc(9), clear_pages(9)

ngl if you got here looking for THP answers, go read thp_order(9) and thp_size(9) β€” this page is about the default page size and she is NOT doing THP discourse today πŸ’…

and that's the whole page, bestie β€” courtesy of the fine folks in ./include/linux, October 2026 edition 🌈 mwah, go read some folios, ily πŸ«ΆπŸ’–

πŸ“¦ where this page comes from