page_pool_put_full_page(9)
π page_pool_put_full_page β the kernel API manual, but make it make sense
okay so bestie, welcome to page_pool_put_full_page(9) β yes that whole mouthful is the name, we're not abbreviating, we're not skipping it, we're doing this properly. It lives in the Kernel API Manual and honestly? it's iconic.
β¨ SYNOPSIS β¨
void page_pool_put_full_page (struct page_pool *pool , struct page *page
, bool allow_direct );
that's the whole signature, no cap. void return, so it's giving "I do the work and I don't report back" energy. π
π«Ά ARGUMENTS π«Ά
poolβ the pool your page came from, like, its home base π . This is thestruct page_pool *, the one that allocated the page in the first place.pageβ the actual page you're dropping a reference on (struct page *). This is the main character of the operation ngl.allow_directβ aboolthat says the release is happening by the consumer, and that you're allowing lockless caching. so like... let it be fast, let it be free, no locks, we trust the vibes β¨.
πΈ DESCRIPTION πΈ
So here's the tea: this one is super similar to page_pool_put_page β like, cousins, same family, same energy β but it also does a DMA sync over the entire memory area, exactly as configured in page_pool_params.max_len. π¦
So the difference is literally just that full-area DMA sync. Everything else? Same vibe, same job, same "release a reference on a page pool page" mission. periodt. π
π SEE ALSO π
go read these next, bestie, they're all in the same friend group:
- Kernel file
./include/net/page_pool/helpers.hβpage_pool allocator(9) page_pool_dev_alloc_pages(9)page_pool_dev_alloc_frag(9)page_pool_dev_alloc(9)page_pool_dev_alloc_va(9)page_pool_get_dma_dir(9)page_pool_fragment_page(9)page_pool_put_page(9)page_pool_recycle_direct(9)page_pool_free_va(9)page_pool_get_dma_addr(9)page_pool_dma_sync_for_cpu(9)page_pool_is_unreadable(9)
that's thirteen references, I counted, and I'm not leaving a single one out because every one of them ate π₯
π reminder that this is a void function β it doesn't return an exit status or anything, so don't go looking for a return value, it's not there, it's not coming, we've moved on.
π alright that's the whole page, mwah π β this one's from the kernel docs tree at ./include/net/page_pool, dated October 2026, and it's page_pool_put_full_page(9) signing off. drink water, sync your DMA, love u bye π
π¦ 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