diff mbox series

[net-next,v6,3/4] skbuff: Add a function to check if a page belongs to page_pool

Message ID 20231130115611.6632-4-liangchen.linux@gmail.com (mailing list archive)
State Superseded
Delegated to: Netdev Maintainers
Headers show
Series skbuff: Optimize SKB coalescing for page pool | expand

Checks

Context Check Description
netdev/series_format success Posting correctly formatted
netdev/tree_selection success Clearly marked for net-next
netdev/ynl success Generated files up to date; no warnings/errors;
netdev/fixes_present success Fixes tag not required for -next series
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 1117 this patch: 1117
netdev/cc_maintainers success CCed 4 of 4 maintainers
netdev/build_clang success Errors and warnings before: 1143 this patch: 1143
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success No Fixes tag
netdev/build_allmodconfig_warn success Errors and warnings before: 1144 this patch: 1144
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 19 lines checked
netdev/build_clang_rust success No Rust files in patch. Skipping build
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0

Commit Message

Liang Chen Nov. 30, 2023, 11:56 a.m. UTC
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@gmail.com>
Reviewed-by: Yunsheng Lin <linyunsheng@huawei.com>
---
 net/core/skbuff.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Ilias Apalodimas Dec. 1, 2023, 10:22 a.m. UTC | #1
The second time is the charm, apologize for the noise.. resending it
as plain-text

On Thu, 30 Nov 2023 at 13:59, Liang Chen <liangchen.linux@gmail.com> 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@gmail.com>
> Reviewed-by: Yunsheng Lin <linyunsheng@huawei.com>
> ---
>  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..31e57c29c556 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 bool skb_frag_is_pp_page(struct page *page)
> +{
> +       return (page->pp_magic & ~0x3UL) == PP_SIGNATURE;
> +}
> +

That's fine, but why _frag? The same logic applies to non-fragmented pages no?
So rename it to skb_from_pp()?

[...]

Thanks
/Ilias
Liang Chen Dec. 4, 2023, 2:40 a.m. UTC | #2
On Fri, Dec 1, 2023 at 6:23 PM Ilias Apalodimas
<ilias.apalodimas@linaro.org> wrote:
>
> The second time is the charm, apologize for the noise.. resending it
> as plain-text
>
> On Thu, 30 Nov 2023 at 13:59, Liang Chen <liangchen.linux@gmail.com> 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@gmail.com>
> > Reviewed-by: Yunsheng Lin <linyunsheng@huawei.com>
> > ---
> >  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..31e57c29c556 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 bool skb_frag_is_pp_page(struct page *page)
> > +{
> > +       return (page->pp_magic & ~0x3UL) == PP_SIGNATURE;
> > +}
> > +
>
> That's fine, but why _frag? The same logic applies to non-fragmented pages no?
> So rename it to skb_from_pp()?
>

Yeah, the same logic applies to non-fragmented pages. How about
changing it to 'is_pp_page'? It takes a page as an argument instead of
the entire skb.
> [...]
>
> Thanks
> /Ilias
Ilias Apalodimas Dec. 5, 2023, 11:02 a.m. UTC | #3
Hi Liang,

On Mon, 4 Dec 2023 at 04:40, Liang Chen <liangchen.linux@gmail.com> wrote:
>
> On Fri, Dec 1, 2023 at 6:23 PM Ilias Apalodimas
> <ilias.apalodimas@linaro.org> wrote:
> >
> > The second time is the charm, apologize for the noise.. resending it
> > as plain-text
> >
> > On Thu, 30 Nov 2023 at 13:59, Liang Chen <liangchen.linux@gmail.com> 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@gmail.com>
> > > Reviewed-by: Yunsheng Lin <linyunsheng@huawei.com>
> > > ---
> > >  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..31e57c29c556 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 bool skb_frag_is_pp_page(struct page *page)
> > > +{
> > > +       return (page->pp_magic & ~0x3UL) == PP_SIGNATURE;
> > > +}
> > > +
> >
> > That's fine, but why _frag? The same logic applies to non-fragmented pages no?
> > So rename it to skb_from_pp()?
> >
>
> Yeah, the same logic applies to non-fragmented pages. How about
> changing it to 'is_pp_page'? It takes a page as an argument instead of
> the entire skb.

Naming stuff is always hard. Any of skb_from_pp/is_pp_page would work for me

Thanks
/Ilias
> > [...]
> >
> > Thanks
> > /Ilias
diff mbox series

Patch

diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index b157efea5dea..31e57c29c556 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 bool skb_frag_is_pp_page(struct page *page)
+{
+	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;