[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <4e997355-1c76-429b-b67f-2c543fd0853a@intel.com>
Date: Tue, 7 Oct 2025 17:26:46 +0200
From: Alexander Lobakin <aleksander.lobakin@...el.com>
To: Eric Dumazet <edumazet@...gle.com>
CC: Maciej Fijalkowski <maciej.fijalkowski@...el.com>, "David S . Miller"
<davem@...emloft.net>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni
<pabeni@...hat.com>, Simon Horman <horms@...nel.org>, Jamal Hadi Salim
<jhs@...atatu.com>, Cong Wang <xiyou.wangcong@...il.com>, Jiri Pirko
<jiri@...nulli.us>, Kuniyuki Iwashima <kuniyu@...gle.com>, Willem de Bruijn
<willemb@...gle.com>, <netdev@...r.kernel.org>, <eric.dumazet@...il.com>
Subject: Re: [PATCH RFC net-next 1/5] net: add add indirect call wrapper in
skb_release_head_state()
From: Eric Dumazet <edumazet@...gle.com>
Date: Mon, 6 Oct 2025 19:30:59 +0000
> While stress testing UDP senders on a host with expensive indirect
> calls, I found cpus processing TX completions where showing
> a very high cost (20%) in sock_wfree() due to
> CONFIG_MITIGATION_RETPOLINE=y.
>
> Take care of TCP and UDP TX destructors and use INDIRECT_CALL_3() macro.
>
> Signed-off-by: Eric Dumazet <edumazet@...gle.com>
> ---
> net/core/skbuff.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/net/core/skbuff.c b/net/core/skbuff.c
> index bc12790017b0b5c0be99f8fb9d362b3730fa4eb0..c9c06f9a8d6085f8d0907b412e050a60c835a6e8 100644
> --- a/net/core/skbuff.c
> +++ b/net/core/skbuff.c
> @@ -1136,7 +1136,9 @@ void skb_release_head_state(struct sk_buff *skb)
> skb_dst_drop(skb);
> if (skb->destructor) {
> DEBUG_NET_WARN_ON_ONCE(in_hardirq());
> - skb->destructor(skb);
> + INDIRECT_CALL_3(skb->destructor,
> + tcp_wfree, __sock_wfree, sock_wfree,
> + skb);
Not sure, but maybe we could add generic XSk skb destructor here as
well? Or it's not that important as generic XSk is not the best way to
use XDP sockets?
Maciej, what do you think?
> }
> #if IS_ENABLED(CONFIG_NF_CONNTRACK)
> nf_conntrack_put(skb_nfct(skb));
Thanks,
Olek
Powered by blists - more mailing lists