libeth_rx_p...ol_params_zc(9)
π libeth_rx_p...ol_params_zc(9) β like, the Kernel API Manual era π
okay so bestie, buckle up, because this one is from the Kernel API Manual and it's genuinely kind of a baddie. it's all about calculating your params without that stack overhead dragging you down. no cap. β¨
β¨ NAME β¨
libeth_rx_page_pool_params_zc β calculate params without the stack overhead π¦
like, it does the math so the stack doesn't have to. main character energy fr.
πΈ SYNOPSIS πΈ
bool libeth_rx_page_pool_params_zc (struct libeth_fq *fq , struct page_pool_params *pp );
she takes two things and returns a bool. that's it. that's the vibe. π
π ARGUMENTS π
fqβ the buffer queue we're calculating the size for π (yes, that queue)ppβ thepage_pool_paramsof the netdev, aka the netdev's page pool situation β¨
π₯ DESCRIPTION π₯
so what she actually does: she sets the PP params so they exclude the stack overhead, plus both the buffer length and the truesize β which, fun fact, are equal for the data buffers. iykyk. π«Ά
β οΈ but listen β this requires separate header buffers to be always active and to account the overhead. not optional, babe. it's giving "non-negotiable".
and here's the slay: with MTU == PAGE_SIZE, this allows the kernel to enable the zerocopy mode. periodt. π
π RETURN π
trueon success πfalseon invalid input params π (vibe check failed, try again)
β SEE ALSO β
- Kernel file
./drivers/net/ethernet/intel/libeth/rx.cπ libeth_rx_hw_len_mtu(9)libeth_rx_hw_len_truesize(9)libeth_rx_page_pool_params(9)libeth_rx_fq_create(9)libeth_rx_fq_destroy(9)libeth_rx_recycle_slow(9)libeth_rx_pt_gen_hash_type(9)
the whole friend group, honestly. go say hi. π§
and that's the page, bestie!! π this little masterpiece lives at ./drivers/net/ethernet/intel/l..., dated October 2026, and it's filed under libeth_rx_p...ol_params_zc(9). mwah πβ¨
π¦ 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