From: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
To: Mahdi Faramarzpour <mahdifrmx@gmail.com>, netdev@vger.kernel.org
Cc: willemdebruijn.kernel@gmail.com, davem@davemloft.net,
dsahern@kernel.org, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, horms@kernel.org,
kshitiz.bartariya@zohomail.in,
Mahdi Faramarzpour <mahdifrmx@gmail.com>
Subject: Re: [PATCH net-next] udp: add drop count for packets in udp_prod_queue
Date: Thu, 08 Jan 2026 10:05:10 -0500 [thread overview]
Message-ID: <willemdebruijn.kernel.3d34f04282b4@gmail.com> (raw)
In-Reply-To: <20260108102950.49417-1-mahdifrmx@gmail.com>
Mahdi Faramarzpour wrote:
> This commit adds SNMP drop count increment for the packets in
> per NUMA queues which were introduced in commit b650bf0977d3
> ("udp: remove busylock and add per NUMA queues").
If respinning anyway, may be worth adding the note that SNMP
counters are incremented currently by the caller for skb. And
that these skbs on the intermediate queue cannot be counted
there so need similar logic in their error path.
>
> Signed-off-by: Mahdi Faramarzpour <mahdifrmx@gmail.com>
> ---
> v4:
> - move all changes to unlikely(to_drop) branch
> v3: https://lore.kernel.org/netdev/20260105114732.140719-1-mahdifrmx@gmail.com/
> - remove the unreachable UDP_MIB_RCVBUFERRORS code
> v2: https://lore.kernel.org/netdev/20260105071218.10785-1-mahdifrmx@gmail.com/
> - change ENOMEM to ENOBUFS
> v1: https://lore.kernel.org/netdev/20260104105732.427691-1-mahdifrmx@gmail.com/
> ---
> net/ipv4/udp.c | 20 +++++++++++++++++++-
> 1 file changed, 19 insertions(+), 1 deletion(-)
>
> diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
> index ffe074cb5..399d1a357 100644
> --- a/net/ipv4/udp.c
> +++ b/net/ipv4/udp.c
> @@ -1705,6 +1705,10 @@ int __udp_enqueue_schedule_skb(struct sock *sk, struct sk_buff *skb)
> unsigned int rmem, rcvbuf;
> int size, err = -ENOMEM;
> int total_size = 0;
> + struct {
> + int ipv4;
> + int ipv6;
> + } mem_err_count;
> int q_size = 0;
> int dropcount;
> int nb = 0;
> @@ -1793,14 +1797,28 @@ int __udp_enqueue_schedule_skb(struct sock *sk, struct sk_buff *skb)
> }
>
> if (unlikely(to_drop)) {
> + mem_err_count.ipv4 = 0;
> + mem_err_count.ipv6 = 0;
Simpler to avoid the struct and in this branch scope define
int err_ipv4 = 0;
int err_ipv6 = 0;
> for (nb = 0; to_drop != NULL; nb++) {
> skb = to_drop;
> + if (skb->protocol == htons(ETH_P_IP))
> + mem_err_count.ipv4++;
> + else
> + mem_err_count.ipv6++;
> to_drop = skb->next;
> skb_mark_not_on_list(skb);
> - /* TODO: update SNMP values. */
> sk_skb_reason_drop(sk, skb, SKB_DROP_REASON_PROTO_MEM);
> }
> numa_drop_add(&udp_sk(sk)->drop_counters, nb);
> +
> + SNMP_ADD_STATS(__UDPX_MIB(sk, true), UDP_MIB_MEMERRORS,
> + mem_err_count.ipv4);
> + SNMP_ADD_STATS(__UDPX_MIB(sk, true), UDP_MIB_INERRORS,
> + mem_err_count.ipv4);
> + SNMP_ADD_STATS(__UDPX_MIB(sk, false), UDP_MIB_MEMERRORS,
> + mem_err_count.ipv6);
> + SNMP_ADD_STATS(__UDPX_MIB(sk, false), UDP_MIB_INERRORS,
> + mem_err_count.ipv6);
Only add if non-zero.
> }
>
> atomic_sub(total_size, &udp_prod_queue->rmem_alloc);
> --
> 2.34.1
>
next prev parent reply other threads:[~2026-01-08 15:05 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-08 10:29 [PATCH net-next] udp: add drop count for packets in udp_prod_queue Mahdi Faramarzpour
2026-01-08 15:05 ` Willem de Bruijn [this message]
-- strict thread matches above, loose matches on Subject: below --
2026-01-29 8:38 Mahdi Faramarzpour
2026-01-29 17:17 ` Willem de Bruijn
2026-01-29 17:28 ` Eric Dumazet
2026-01-31 1:40 ` patchwork-bot+netdevbpf
2026-01-28 7:03 Mahdi Faramarzpour
2026-01-28 11:43 ` Eric Dumazet
2026-01-28 12:27 ` Mahdi Faramarzpour
2026-01-28 12:37 ` Eric Dumazet
2026-01-28 14:56 ` Mahdi Faramarzpour
2026-01-28 18:54 ` Willem de Bruijn
2026-01-22 18:53 Mahdi Faramarzpour
2026-01-22 21:26 ` Willem de Bruijn
2026-01-23 8:14 ` Paolo Abeni
2026-01-23 14:41 ` Willem de Bruijn
2026-01-23 15:25 ` Paolo Abeni
2026-01-24 15:36 ` Willem de Bruijn
2026-01-24 6:20 ` Mahdi Faramarzpour
2026-01-24 15:32 ` Willem de Bruijn
2026-01-05 11:47 Mahdi Faramarzpour
2026-01-06 1:54 ` Jakub Kicinski
2026-01-06 6:11 ` Mahdi Faramarzpour
2026-01-06 19:22 ` Willem de Bruijn
2026-01-07 9:27 ` Mahdi Faramarzpour
2026-01-07 15:09 ` Willem de Bruijn
2026-01-07 21:46 ` Mahdi Faramarzpour
2026-01-07 22:37 ` Willem de Bruijn
2026-01-06 23:02 ` Jakub Kicinski
2026-01-05 7:12 Mahdi Faramarzpour
2026-01-04 10:57 Mahdi Faramarzpour
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=willemdebruijn.kernel.3d34f04282b4@gmail.com \
--to=willemdebruijn.kernel@gmail.com \
--cc=davem@davemloft.net \
--cc=dsahern@kernel.org \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=kshitiz.bartariya@zohomail.in \
--cc=kuba@kernel.org \
--cc=mahdifrmx@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/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