mirror of
https://github.com/torvalds/linux.git
synced 2026-03-13 23:46:14 +01:00
udp: add drop count for packets in udp_prod_queue
This commit adds SNMP drop count increment for the packets in
per NUMA queues which were introduced in commit b650bf0977
("udp: remove busylock and add per NUMA queues"). 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>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20260129083806.204752-1-mahdifrmx@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
ed9b70040d
commit
820990d665
1 changed files with 19 additions and 1 deletions
|
|
@ -1794,14 +1794,32 @@ int __udp_enqueue_schedule_skb(struct sock *sk, struct sk_buff *skb)
|
|||
}
|
||||
|
||||
if (unlikely(to_drop)) {
|
||||
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))
|
||||
err_ipv4++;
|
||||
else
|
||||
err_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);
|
||||
if (err_ipv4 > 0) {
|
||||
SNMP_ADD_STATS(__UDPX_MIB(sk, true), UDP_MIB_MEMERRORS,
|
||||
err_ipv4);
|
||||
SNMP_ADD_STATS(__UDPX_MIB(sk, true), UDP_MIB_INERRORS,
|
||||
err_ipv4);
|
||||
}
|
||||
if (err_ipv6 > 0) {
|
||||
SNMP_ADD_STATS(__UDPX_MIB(sk, false), UDP_MIB_MEMERRORS,
|
||||
err_ipv6);
|
||||
SNMP_ADD_STATS(__UDPX_MIB(sk, false), UDP_MIB_INERRORS,
|
||||
err_ipv6);
|
||||
}
|
||||
}
|
||||
|
||||
atomic_sub(total_size, &udp_prod_queue->rmem_alloc);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue