From: Jakub Kicinski <kuba@kernel.org>
To: mmietus97@yahoo.com
Cc: Jakub Kicinski <kuba@kernel.org>,
netdev@vger.kernel.org, sd@queasysnail.net, Jason@zx2c4.com
Subject: Re: [net-next,v5,09/11] net: sctp: convert sctp_v{4,6}_xmit to use a noref dst when possible
Date: Sat, 17 Jan 2026 16:36:11 -0800 [thread overview]
Message-ID: <20260118003611.1042386-1-kuba@kernel.org> (raw)
In-Reply-To: <20260113163614.6212-1-mmietus97@yahoo.com>
This is an AI-generated review of your patch. The human sending this
email has considered the AI review valid, or at least plausible.
For local reproduction steps see https://netdev-ai.bots.linux.dev/ai-local.html
---
net: sctp: convert sctp_v{4,6}_xmit to use a noref dst when possible
This patch removes the dst_clone() at function entry and dst_release() in
the encap path, aiming to reduce refcount overhead when sending SCTP packets
via UDP encapsulation. The non-encap path now clones dst inside skb_dst_set.
> diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c
> index 38fd1cf3148f..8c28441009fa 100644
> --- a/net/sctp/ipv6.c
> +++ b/net/sctp/ipv6.c
[ ... ]
> @@ -264,7 +264,6 @@ static int sctp_v6_xmit(struct sk_buff *skb, struct sctp_transport *t)
> udp_tunnel6_xmit_skb(dst, sk, skb, NULL, &fl6->saddr, &fl6->daddr,
> tclass, ip6_dst_hoplimit(dst), label,
> sctp_sk(sk)->udp_port, t->encap_port, false, 0);
> - dst_release(dst);
> return 0;
> }
The encap path passes dst to udp_tunnel6_xmit_skb() which internally calls
skb_dst_set_noref(). This function has:
WARN_ON(!rcu_read_lock_held() && !rcu_read_lock_bh_held());
Looking at the callers, sctp_outq_flush_transports() does:
rcu_read_unlock();
error = sctp_packet_transmit(packet, ctx->gfp);
The RCU read lock is explicitly dropped before calling into the transmit
path. Will this trigger the WARN_ON in skb_dst_set_noref() for every
SCTP-over-UDP packet?
> diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c
> index ff18ed0a65ff..8a00bb0a8ae5 100644
[ ... ]
> @@ -1074,7 +1074,6 @@ static inline int sctp_v4_xmit(struct sk_buff *skb, struct sctp_transport *t)
> fl4->daddr, dscp, ip4_dst_hoplimit(dst), df,
> sctp_sk(sk)->udp_port, t->encap_port, false, false,
> 0);
> - dst_release(dst);
> return 0;
> }
Same question for the IPv4 path - udp_tunnel_xmit_skb() calls iptunnel_xmit()
which also uses skb_dst_set_noref(). Without RCU read lock held by the caller,
does this path also trigger the WARN_ON?
next prev parent reply other threads:[~2026-01-18 0:36 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20260113162954.5948-1-mmietus97.ref@yahoo.com>
2026-01-13 16:29 ` [PATCH net-next v5 00/11] net: tunnel: introduce noref xmit flows for tunnels Marek Mietus
2026-01-13 16:29 ` [PATCH net-next v5 01/11] net: dst_cache: add noref versions for dst_cache Marek Mietus
2026-01-13 16:29 ` [PATCH net-next v5 02/11] net: tunnel: convert iptunnel_xmit to noref Marek Mietus
2026-01-13 16:29 ` [PATCH net-next v5 03/11] net: tunnel: convert udp_tunnel{6,}_xmit_skb " Marek Mietus
2026-01-18 0:36 ` [net-next,v5,03/11] " Jakub Kicinski
2026-01-20 13:25 ` Marek Mietus
2026-01-13 16:29 ` [PATCH net-next v5 04/11] net: tunnel: allow noref dsts in udp_tunnel{,6}_dst_lookup Marek Mietus
2026-01-13 16:29 ` [PATCH net-next v5 05/11] net: ovpn: convert ovpn_udp{4,6}_output to use a noref dst Marek Mietus
2026-01-13 16:29 ` [PATCH net-next v5 06/11] wireguard: socket: convert send{4,6} to use a noref dst when possible Marek Mietus
2026-01-13 16:29 ` [PATCH net-next v5 07/11] net: tunnel: convert ip_md_tunnel_xmit " Marek Mietus
2026-01-13 16:29 ` [PATCH net-next v5 08/11] net: tunnel: convert ip_tunnel_xmit " Marek Mietus
2026-01-13 16:36 ` [PATCH net-next v5 09/11] net: sctp: convert sctp_v{4,6}_xmit " Marek Mietus
2026-01-18 0:36 ` Jakub Kicinski [this message]
2026-01-13 16:36 ` [PATCH net-next v5 10/11] net: sit: convert ipip6_tunnel_xmit to use a noref dst Marek Mietus
2026-01-18 0:36 ` [net-next,v5,10/11] " Jakub Kicinski
2026-01-13 16:36 ` [PATCH net-next v5 11/11] net: tipc: convert tipc_udp_xmit " Marek Mietus
2026-03-17 11:02 ` [PATCH net-next v5 00/11] net: tunnel: introduce noref xmit flows for tunnels Paolo Abeni
2026-03-17 11:28 ` Sabrina Dubroca
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260118003611.1042386-1-kuba@kernel.org \
--to=kuba@kernel.org \
--cc=Jason@zx2c4.com \
--cc=mmietus97@yahoo.com \
--cc=netdev@vger.kernel.org \
--cc=sd@queasysnail.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox