Message ID | 20210604183349.30040-5-mcroce@linux.microsoft.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | page_pool: recycle buffers | expand |
On Fri, Jun 04, 2021 at 08:33:48PM +0200, Matteo Croce wrote: > +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c > @@ -3997,7 +3997,7 @@ static int mvpp2_rx(struct mvpp2_port *port, struct napi_struct *napi, > } > > if (pp) > - page_pool_release_page(pp, virt_to_page(data)); > + skb_mark_for_recycle(skb, virt_to_page(data), pp); Does this driver only use order-0 pages? Should it be using virt_to_head_page() here? or should skb_mark_for_recycle() call compound_head() internally?
On Fri, Jun 4, 2021 at 9:48 PM Matthew Wilcox <willy@infradead.org> wrote: > > On Fri, Jun 04, 2021 at 08:33:48PM +0200, Matteo Croce wrote: > > +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c > > @@ -3997,7 +3997,7 @@ static int mvpp2_rx(struct mvpp2_port *port, struct napi_struct *napi, > > } > > > > if (pp) > > - page_pool_release_page(pp, virt_to_page(data)); > > + skb_mark_for_recycle(skb, virt_to_page(data), pp); > > Does this driver only use order-0 pages? Should it be using > virt_to_head_page() here? or should skb_mark_for_recycle() call > compound_head() internally? This driver uses only order-0 pages.
diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c index d4fb620f53f3..b1d186abcc6c 100644 --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c @@ -3997,7 +3997,7 @@ static int mvpp2_rx(struct mvpp2_port *port, struct napi_struct *napi, } if (pp) - page_pool_release_page(pp, virt_to_page(data)); + skb_mark_for_recycle(skb, virt_to_page(data), pp); else dma_unmap_single_attrs(dev->dev.parent, dma_addr, bm_pool->buf_size, DMA_FROM_DEVICE,