Message ID | 20230707183935.997267-5-kuba@kernel.org (mailing list archive) |
---|---|
State | RFC |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: huge page backed page_pool | expand |
On 07/07/2023 20.39, Jakub Kicinski wrote: > Now that page_pool_release_page() is not exported we can > merge it with page_pool_return_page(). I believe that > the "Do not replace this with page_pool_return_page()" > comment was there in case page_pool_return_page() was > not inlined, to avoid two function calls. > > Signed-off-by: Jakub Kicinski <kuba@kernel.org> I forgot the exact reason, but the "avoid two function calls" argument makes sense. As this is no-longer an issues, I'm okay with this change. Acked-by: Jesper Dangaard Brouer <hawk@kernel.org> > --- > net/core/page_pool.c | 12 ++---------- > 1 file changed, 2 insertions(+), 10 deletions(-) > > diff --git a/net/core/page_pool.c b/net/core/page_pool.c > index 2c7cf5f2bcb8..7ca456bfab71 100644 > --- a/net/core/page_pool.c > +++ b/net/core/page_pool.c > @@ -492,7 +492,7 @@ static s32 page_pool_inflight(struct page_pool *pool) > * a regular page (that will eventually be returned to the normal > * page-allocator via put_page). > */ > -static void page_pool_release_page(struct page_pool *pool, struct page *page) > +static void page_pool_return_page(struct page_pool *pool, struct page *page) > { > dma_addr_t dma; > int count; > @@ -518,12 +518,6 @@ static void page_pool_release_page(struct page_pool *pool, struct page *page) > */ > count = atomic_inc_return_relaxed(&pool->pages_state_release_cnt); > trace_page_pool_state_release(pool, page, count); > -} > - > -/* Return a page to the page allocator, cleaning up our state */ > -static void page_pool_return_page(struct page_pool *pool, struct page *page) > -{ > - page_pool_release_page(pool, page); > > put_page(page); > /* An optimization would be to call __free_pages(page, pool->p.order) > @@ -615,9 +609,7 @@ __page_pool_put_page(struct page_pool *pool, struct page *page, > * will be invoking put_page. > */ > recycle_stat_inc(pool, released_refcnt); > - /* Do not replace this with page_pool_return_page() */ > - page_pool_release_page(pool, page); > - put_page(page); > + page_pool_return_page(pool, page); > > return NULL; > }
diff --git a/net/core/page_pool.c b/net/core/page_pool.c index 2c7cf5f2bcb8..7ca456bfab71 100644 --- a/net/core/page_pool.c +++ b/net/core/page_pool.c @@ -492,7 +492,7 @@ static s32 page_pool_inflight(struct page_pool *pool) * a regular page (that will eventually be returned to the normal * page-allocator via put_page). */ -static void page_pool_release_page(struct page_pool *pool, struct page *page) +static void page_pool_return_page(struct page_pool *pool, struct page *page) { dma_addr_t dma; int count; @@ -518,12 +518,6 @@ static void page_pool_release_page(struct page_pool *pool, struct page *page) */ count = atomic_inc_return_relaxed(&pool->pages_state_release_cnt); trace_page_pool_state_release(pool, page, count); -} - -/* Return a page to the page allocator, cleaning up our state */ -static void page_pool_return_page(struct page_pool *pool, struct page *page) -{ - page_pool_release_page(pool, page); put_page(page); /* An optimization would be to call __free_pages(page, pool->p.order) @@ -615,9 +609,7 @@ __page_pool_put_page(struct page_pool *pool, struct page *page, * will be invoking put_page. */ recycle_stat_inc(pool, released_refcnt); - /* Do not replace this with page_pool_return_page() */ - page_pool_release_page(pool, page); - put_page(page); + page_pool_return_page(pool, page); return NULL; }
Now that page_pool_release_page() is not exported we can merge it with page_pool_return_page(). I believe that the "Do not replace this with page_pool_return_page()" comment was there in case page_pool_return_page() was not inlined, to avoid two function calls. Signed-off-by: Jakub Kicinski <kuba@kernel.org> --- net/core/page_pool.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-)