All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next] net: skb: move skb_pp_recycle() to skbuff.c
@ 2022-10-21  2:58 Yunsheng Lin
  2022-10-21  6:02 ` Ilias Apalodimas
  2022-10-24 13:26 ` patchwork-bot+netdevbpf
  0 siblings, 2 replies; 5+ messages in thread
From: Yunsheng Lin @ 2022-10-21  2:58 UTC (permalink / raw)
  To: davem, kuba
  Cc: netdev, linux-kernel, linuxarm, pabeni, hawk, ilias.apalodimas

skb_pp_recycle() is only used by skb_free_head() in
skbuff.c, so move it to skbuff.c.

Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
---
 include/linux/skbuff.h | 7 -------
 net/core/skbuff.c      | 7 +++++++
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 9fcf534f2d92..28a7b5fbc7b7 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -5048,12 +5048,5 @@ static inline void skb_mark_for_recycle(struct sk_buff *skb)
 }
 #endif
 
-static inline bool skb_pp_recycle(struct sk_buff *skb, void *data)
-{
-	if (!IS_ENABLED(CONFIG_PAGE_POOL) || !skb->pp_recycle)
-		return false;
-	return page_pool_return_skb_page(virt_to_page(data));
-}
-
 #endif	/* __KERNEL__ */
 #endif	/* _LINUX_SKBUFF_H */
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index 1d9719e72f9d..9b3b19816d2d 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -748,6 +748,13 @@ static void skb_clone_fraglist(struct sk_buff *skb)
 		skb_get(list);
 }
 
+static bool skb_pp_recycle(struct sk_buff *skb, void *data)
+{
+	if (!IS_ENABLED(CONFIG_PAGE_POOL) || !skb->pp_recycle)
+		return false;
+	return page_pool_return_skb_page(virt_to_page(data));
+}
+
 static void skb_free_head(struct sk_buff *skb)
 {
 	unsigned char *head = skb->head;
-- 
2.33.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH net-next] net: skb: move skb_pp_recycle() to skbuff.c
  2022-10-21  2:58 [PATCH net-next] net: skb: move skb_pp_recycle() to skbuff.c Yunsheng Lin
@ 2022-10-21  6:02 ` Ilias Apalodimas
  2022-10-21 15:51   ` Jakub Kicinski
  2022-10-24 13:26 ` patchwork-bot+netdevbpf
  1 sibling, 1 reply; 5+ messages in thread
From: Ilias Apalodimas @ 2022-10-21  6:02 UTC (permalink / raw)
  To: Yunsheng Lin; +Cc: davem, kuba, netdev, linux-kernel, linuxarm, pabeni, hawk

Hi Yungsheng

On Fri, 21 Oct 2022 at 05:58, Yunsheng Lin <linyunsheng@huawei.com> wrote:
>
> skb_pp_recycle() is only used by skb_free_head() in
> skbuff.c, so move it to skbuff.c.
>
> Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
> ---
>  include/linux/skbuff.h | 7 -------
>  net/core/skbuff.c      | 7 +++++++
>  2 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
> index 9fcf534f2d92..28a7b5fbc7b7 100644
> --- a/include/linux/skbuff.h
> +++ b/include/linux/skbuff.h
> @@ -5048,12 +5048,5 @@ static inline void skb_mark_for_recycle(struct sk_buff *skb)
>  }
>  #endif
>
> -static inline bool skb_pp_recycle(struct sk_buff *skb, void *data)
> -{
> -       if (!IS_ENABLED(CONFIG_PAGE_POOL) || !skb->pp_recycle)
> -               return false;
> -       return page_pool_return_skb_page(virt_to_page(data));
> -}
> -
>  #endif /* __KERNEL__ */
>  #endif /* _LINUX_SKBUFF_H */
> diff --git a/net/core/skbuff.c b/net/core/skbuff.c
> index 1d9719e72f9d..9b3b19816d2d 100644
> --- a/net/core/skbuff.c
> +++ b/net/core/skbuff.c
> @@ -748,6 +748,13 @@ static void skb_clone_fraglist(struct sk_buff *skb)
>                 skb_get(list);
>  }
>
> +static bool skb_pp_recycle(struct sk_buff *skb, void *data)
> +{
> +       if (!IS_ENABLED(CONFIG_PAGE_POOL) || !skb->pp_recycle)
> +               return false;
> +       return page_pool_return_skb_page(virt_to_page(data));
> +}
> +

Any particular reason you are removing the inline hint here?  Doing it
like this will add an extra function call for every packet (assuming
the compiler decided to inline the previous version)

Thanks
/Ilias
>  static void skb_free_head(struct sk_buff *skb)
>  {
>         unsigned char *head = skb->head;
> --
> 2.33.0
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH net-next] net: skb: move skb_pp_recycle() to skbuff.c
  2022-10-21  6:02 ` Ilias Apalodimas
@ 2022-10-21 15:51   ` Jakub Kicinski
  2022-10-21 16:46     ` Ilias Apalodimas
  0 siblings, 1 reply; 5+ messages in thread
From: Jakub Kicinski @ 2022-10-21 15:51 UTC (permalink / raw)
  To: Ilias Apalodimas
  Cc: Yunsheng Lin, davem, netdev, linux-kernel, linuxarm, pabeni, hawk

On Fri, 21 Oct 2022 09:02:36 +0300 Ilias Apalodimas wrote:
> > +static bool skb_pp_recycle(struct sk_buff *skb, void *data)
> > +{
> > +       if (!IS_ENABLED(CONFIG_PAGE_POOL) || !skb->pp_recycle)
> > +               return false;
> > +       return page_pool_return_skb_page(virt_to_page(data));
> > +}
> 
> Any particular reason you are removing the inline hint here? 

It's recommended in networking to avoid using the inline keyword
unless someone actually checked the compiler output and found the
compiler is being stupid. I don't know the full history of this
recommendation tho.

> Doing it like this will add an extra function call for every packet
> (assuming the compiler decided to inline the previous version)

Should be fine, tiny static function with one caller, I'd bet it's
always inlined, even with -Os.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH net-next] net: skb: move skb_pp_recycle() to skbuff.c
  2022-10-21 15:51   ` Jakub Kicinski
@ 2022-10-21 16:46     ` Ilias Apalodimas
  0 siblings, 0 replies; 5+ messages in thread
From: Ilias Apalodimas @ 2022-10-21 16:46 UTC (permalink / raw)
  To: Jakub Kicinski
  Cc: Yunsheng Lin, davem, netdev, linux-kernel, linuxarm, pabeni, hawk

Hi Jakub 
On Fri, Oct 21, 2022 at 08:51:38AM -0700, Jakub Kicinski wrote:
> On Fri, 21 Oct 2022 09:02:36 +0300 Ilias Apalodimas wrote:
> > > +static bool skb_pp_recycle(struct sk_buff *skb, void *data)
> > > +{
> > > +       if (!IS_ENABLED(CONFIG_PAGE_POOL) || !skb->pp_recycle)
> > > +               return false;
> > > +       return page_pool_return_skb_page(virt_to_page(data));
> > > +}
> > 
> > Any particular reason you are removing the inline hint here? 
> 
> It's recommended in networking to avoid using the inline keyword
> unless someone actually checked the compiler output and found the
> compiler is being stupid. I don't know the full history of this
> recommendation tho.
> 

Ah thanks, didn't know that.  IIRC there was no particular reason.
Probably because the majority of the functions in that header are static
inlines.

> > Doing it like this will add an extra function call for every packet
> > (assuming the compiler decided to inline the previous version)
> 
> Should be fine, tiny static function with one caller, I'd bet it's
> always inlined, even with -Os.

Well it's compilers -- I wouldn't bet,  but fair enough

Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>

Thanks
/Ilias

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH net-next] net: skb: move skb_pp_recycle() to skbuff.c
  2022-10-21  2:58 [PATCH net-next] net: skb: move skb_pp_recycle() to skbuff.c Yunsheng Lin
  2022-10-21  6:02 ` Ilias Apalodimas
@ 2022-10-24 13:26 ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 5+ messages in thread
From: patchwork-bot+netdevbpf @ 2022-10-24 13:26 UTC (permalink / raw)
  To: Yunsheng Lin
  Cc: davem, kuba, netdev, linux-kernel, linuxarm, pabeni, hawk,
	ilias.apalodimas

Hello:

This patch was applied to netdev/net-next.git (master)
by David S. Miller <davem@davemloft.net>:

On Fri, 21 Oct 2022 10:58:22 +0800 you wrote:
> skb_pp_recycle() is only used by skb_free_head() in
> skbuff.c, so move it to skbuff.c.
> 
> Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
> ---
>  include/linux/skbuff.h | 7 -------
>  net/core/skbuff.c      | 7 +++++++
>  2 files changed, 7 insertions(+), 7 deletions(-)

Here is the summary with links:
  - [net-next] net: skb: move skb_pp_recycle() to skbuff.c
    https://git.kernel.org/netdev/net-next/c/4727bab4e9bb

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-10-24 15:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-21  2:58 [PATCH net-next] net: skb: move skb_pp_recycle() to skbuff.c Yunsheng Lin
2022-10-21  6:02 ` Ilias Apalodimas
2022-10-21 15:51   ` Jakub Kicinski
2022-10-21 16:46     ` Ilias Apalodimas
2022-10-24 13:26 ` patchwork-bot+netdevbpf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.