folio_shift(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

okay so welcome to folio_shift(9), straight from the Kernel API Manual, bestie. The name is giving exactly this:

folio_shift - The size of the memory described by this folio.

That's the whole NAME vibe. slay. πŸ’…


✨ SYNOPSIS ✨

unsigned int folio_shift (const struct folio *folio );

yes, that's the signature, spaces and all. no cap.

πŸŽ€ ARGUMENTS πŸŽ€

  • folio β€” The folio. literally the folio you're asking about, periodt.

πŸ’– DESCRIPTION πŸ’–

okay so a folio represents a number of bytes which is a power-of-two in size. This function tells you which power-of-two the folio is. See also folio_size and folio_order β€” they're right there in the same friend group. ✨

πŸ¦‹ CONTEXT πŸ¦‹

bestie, the caller should have a reference on the folio to prevent it from being split. It is not necessary for the folio to be locked. lowkey important, but not locked, okay? 🫢

⭐ RETURN ⭐

you get back the base-2 logarithm of the size of this folio. math is math-ing. iconic, honestly. 😭

πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./include/linux/mm.h is the spot, and the whole crew is: 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_mk_pud(9), folio_maybe_dma_pinned(9), is_zero_page(9), is_zero_folio(9), folio_nr_pages(9), folio_next(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).


mwah πŸ’‹ β€” this page is from source/version ./include/linux, dated October 2026, and it's the folio_shift(9) page. bye bestie 🫢

πŸ“¦ where this page comes from