Re: [PATCH net-next v4 3/4] skbuff: Add a function to check if a page belongs to page_pool

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 29, 2023 at 11:40 AM Yunsheng Lin <linyunsheng@xxxxxxxxxx> wrote:
>
> On 2023/11/29 11:12, Liang Chen wrote:
> > Wrap code for checking if a page is a page_pool page into a
> > function for better readability and ease of reuse.
> >
> > Signed-off-by: Liang Chen <liangchen.linux@xxxxxxxxx>
> > ---
> >  net/core/skbuff.c | 7 ++++++-
> >  1 file changed, 6 insertions(+), 1 deletion(-)
> >
> > diff --git a/net/core/skbuff.c b/net/core/skbuff.c
> > index b157efea5dea..310207389f51 100644
> > --- a/net/core/skbuff.c
> > +++ b/net/core/skbuff.c
> > @@ -890,6 +890,11 @@ static void skb_clone_fraglist(struct sk_buff *skb)
> >               skb_get(list);
> >  }
> >
> > +static inline bool skb_frag_is_pp_page(struct page *page)
>
> I am not sure about the 'skb_frag' part, But I am not able to come
> up with a better name too:)
>

So, let's leave it there for now:)
> Also, Generally, 'inline' is not really encouraged in c file in
> the networking unless there is a clear justification as the compiler
> can make better decision about whether inlining most of the time.
>

Sure. will remove 'inline' in v5.

> Other than the 'inlining' part, LGTM.
> Reviewed-by: Yunsheng Lin <linyunsheng@xxxxxxxxxx>
>
> > +{
> > +     return (page->pp_magic & ~0x3UL) == PP_SIGNATURE;
> > +}
> > +
> >  #if IS_ENABLED(CONFIG_PAGE_POOL)
> >  bool napi_pp_put_page(struct page *page, bool napi_safe)
> >  {
> > @@ -905,7 +910,7 @@ bool napi_pp_put_page(struct page *page, bool napi_safe)
> >        * and page_is_pfmemalloc() is checked in __page_pool_put_page()
> >        * to avoid recycling the pfmemalloc page.
> >        */
> > -     if (unlikely((page->pp_magic & ~0x3UL) != PP_SIGNATURE))
> > +     if (unlikely(!skb_frag_is_pp_page(page)))
> >               return false;
> >
> >       pp = page->pp;
> >





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux