folio_mk_pmd(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… folio_mk_pmd(9) β€” from the Kernel API Manual, bestie ✨

okay so picture this: you're deep in the kernel, you've got a folio, and you need a PMD for it. that's literally the whole vibe of this page. let's go 🫢


🌸 NAME 🌸

folio_mk_pmd β€” create a PMD for this folio. that's it. that's the function. iconic behaviour honestly πŸ‘‘


⭐ SYNOPSIS ⭐

pmd_t folio_mk_pmd (const struct folio *folio , pgprot_t pgprot );

look at her. two args, returns a pmd_t, no drama πŸ’…


πŸŽ€ ARGUMENTS πŸŽ€

  • folio β€” the folio you're making a PMD for. the main character of this whole operation 🌟
  • pgprot β€” the page protection bits to use. like, what's allowed and what's not. you decide ✨

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so what this does: it creates a page table entry for the first page of this folio. yes, the first one β€” not all of them, just the first. noted πŸ“

and the whole point? it's suitable for passing to set_pmd_at. so you build it here, you hand it over there. teamwork makes the dream work fr fr 🀝


πŸ”₯ RETURN πŸ”₯

a page table entry suitable for mapping this folio. that's the good stuff. take it, go map something πŸ’–


🌈 SEE ALSO 🌈

bestie. sit down. this list is long. but every single one of these is here for a reason so we're gonna get through it together, no skipping, periodt πŸ’€

kernel file ./include/linux/mm.h β€” that's where the magic lives:

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_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)

like I said. a lot of friends. go read them, they're all slay πŸ’œ


and that's the page!! you ate that honestly πŸ“

cute little sign-off time: this one's sourced from ./include/linux, dated October 2026, and it's folio_mk_pmd(9) all the way down. bye bestie, go map some pages πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from