folios_put(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… folios_put(9) πŸ’…

okay so bestie, this is the Kernel API Manual page for folios_put(9) β€” yes, the manual name is getting folded right in here because we are not copying that header line, we are living it. ✨ Let's get into the folio batch of it all. 🫢


✨ NAME ✨

folios_put β€” Decrement the reference count on an array of folios.

πŸ¦‹ SYNOPSIS πŸ¦‹

the signature, literally:

void folios_put (struct folio_batch *folios );

πŸŽ€ ARGUMENTS πŸŽ€

  • folios β€” The folios. like, the whole batch of them, bestie. πŸ’–

πŸ’– DESCRIPTION πŸ’–

okay so folios_put is like folio_put, but for a batch of folios. it's giving efficiency, no cap: this is more efficient than writing the loop yourself, because it will optimise the locks which need to be taken if the folios are freed. πŸ”₯

the folios batch is returned empty and ready to be reused for another batch; there is no need to reinitialise it. so you put the batch, it comes back empty and ready for another round β€” reinitialise who? never met her. πŸ’…

πŸ”₯ CONTEXT πŸ”₯

context check, bestie: folios_put may be called in process or interrupt context, but not in NMI context. 🚨 it may also be called while holding a spinlock. periodt.

🌈 SEE ALSO 🌈

Kernel file ./include/linux/mm.h, plus the whole SEE ALSO squad, in order: 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), 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). 🌸


mwah πŸ’‹ that's the page β€” source/version ./include/linux, dated October 2026, and folios_put(9) is out. slay responsibly, kernel bestie πŸ‘‘

πŸ“¦ where this page comes from