folio_mk_pud(9)
π NAME
folio_mk_pud β okay so this is the one that Creates a PUD for this folio, and yes bestie that's a capital-P PUD, we'll get into it π
Welcome to the Kernel API Manual, bestie!! This page is the whole vibe check on folio_mk_pud, and it's genuinely so much smaller than the SEE ALSO list at the bottom, which is sending me π
β¨ SYNOPSIS
pud_t folio_mk_pud (const struct folio *folio , pgprot_t pgprot );
Two args, one return, one page-table-entry-shaped icon. Slay.
π ARGUMENTS
folioβ The folio to create a PUD for. Like, this folio. Your main character folio. πpgprotβ The page protection bits to use. It's giving "what's allowed to touch this memory" energy, and the kernel is very serious about it fr fr.
π¦ DESCRIPTION
So here's the tea β: folio_mk_pud creates a page table entry for the first page of this folio. Just the first one β not all of them, not the whole squad, just page one.
And the reason it does that is because the resulting entry is suitable for passing to set_pud_at. That's it. That's the whole job. Lowkey elegant, highkey iconic. π¦
No cap, it literally just builds the entry and hands it to you β what you do with set_pud_at afterward is your business π
πΈ RETURN
A page table entry suitable for mapping this folio. That's the whole return value, bestie β a pud_t ready to go, no drama, no surprises. π«Ά
π SEE ALSO
Kernel file ./include/linux/mm.h β and then the actual guest list, which is long. Like, this function knows everybody at the party:
folio_page_idx(9)vma_flag_t(9)fault_flag_allow_retry_first(9)vma_kernel_pagesize(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_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)
Like I said. Everybody. π
And that's the page!! This little cutie lives in ./include/linux and bestie it's dated October 2026 β mark your calendars, the folio_mk_pud era is upon 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