Lines Matching full:pp

14  * @pp: &page_pool_params of the netdev to calculate the size for
21 static u32 libeth_rx_hw_len_mtu(const struct page_pool_params *pp, u32 max_len) in libeth_rx_hw_len_mtu() argument
25 len = READ_ONCE(pp->netdev->mtu) + LIBETH_RX_LL_LEN; in libeth_rx_hw_len_mtu()
28 pp->max_len); in libeth_rx_hw_len_mtu()
35 * @pp: &page_pool_params of the netdev to calculate the size for
43 static u32 libeth_rx_hw_len_truesize(const struct page_pool_params *pp, in libeth_rx_hw_len_truesize() argument
48 min = SKB_HEAD_ALIGN(pp->offset + LIBETH_RX_BUF_STRIDE); in libeth_rx_hw_len_truesize()
52 len = SKB_WITH_OVERHEAD(truesize - pp->offset); in libeth_rx_hw_len_truesize()
55 pp->max_len); in libeth_rx_hw_len_truesize()
63 * @pp: &page_pool_params of the netdev
65 * Set the PP params to will all needed stack overhead (headroom, tailroom) and
73 struct page_pool_params *pp) in libeth_rx_page_pool_params() argument
75 pp->offset = fq->xdp ? LIBETH_XDP_HEADROOM : LIBETH_SKB_HEADROOM; in libeth_rx_page_pool_params()
77 pp->max_len = LIBETH_RX_PAGE_LEN(pp->offset); in libeth_rx_page_pool_params()
82 fq->buf_len = libeth_rx_hw_len_mtu(pp, fq->buf_len); in libeth_rx_page_pool_params()
85 fq->buf_len = libeth_rx_hw_len_truesize(pp, fq->buf_len, in libeth_rx_page_pool_params()
96 fq->truesize = roundup_pow_of_two(SKB_HEAD_ALIGN(pp->offset + in libeth_rx_page_pool_params()
105 * @pp: &page_pool_params of the netdev
107 * Set the PP params to exclude the stack overhead and both the buffer length
117 struct page_pool_params *pp) in libeth_rx_page_pool_params_zc() argument
121 pp->offset = 0; in libeth_rx_page_pool_params_zc()
122 pp->max_len = PAGE_SIZE << LIBETH_RX_PAGE_ORDER; in libeth_rx_page_pool_params_zc()
126 mtu = READ_ONCE(pp->netdev->mtu); in libeth_rx_page_pool_params_zc()
137 pp->max_len); in libeth_rx_page_pool_params_zc()
146 * libeth_rx_fq_create - create a PP with the default libeth settings
148 * @napi: &napi_struct covering this PP (no usage outside its poll loops)
154 struct page_pool_params pp = { in libeth_rx_fq_create() local
167 pp.dma_dir = fq->xdp ? DMA_BIDIRECTIONAL : DMA_FROM_DEVICE; in libeth_rx_fq_create()
170 ret = libeth_rx_page_pool_params(fq, &pp); in libeth_rx_fq_create()
172 ret = libeth_rx_page_pool_params_zc(fq, &pp); in libeth_rx_fq_create()
176 pool = page_pool_create(&pp); in libeth_rx_fq_create()
191 fq->pp = pool; in libeth_rx_fq_create()
210 xdp_unreg_page_pool(fq->pp); in libeth_rx_fq_destroy()
212 page_pool_destroy(fq->pp); in libeth_rx_fq_destroy()