Re: [PATCH net] bareudp: Fix device stats updates.
From: Eric Dumazet <edumazet@google.com>
Date: 2024-09-06 12:47:30
On Fri, Sep 6, 2024 at 12:42 PM Guillaume Nault [off-list ref] wrote:
On Wed, Sep 04, 2024 at 02:48:39PM -0700, Jakub Kicinski wrote:quoted
On Wed, 4 Sep 2024 19:54:40 +0200 Guillaume Nault wrote:quoted
In this context, I feel that dstats is now just a mix of tstats and core_stats.I don't know the full background but: * @core_stats: core networking counters, * do not use this in driversHum, I didn't realise that :/. I'd really like to understand why drivers shouldn't use core_stats. I mean, what makes driver and core networking counters so different that they need to be handled in two different ways (but finally merged together when exporting stats to user space)? Does that prevent any contention on the counters or optimise cache line access? I can't see how, so I'm probably missing something important here.
Some archeology might help.
Before we had tracing, having separate fields could help for diagnostics.
commit caf586e5f23cebb2a68cbaf288d59dbbf2d74052
Author: Eric Dumazet [off-list ref]
Date: Thu Sep 30 21:06:55 2010 +0000
net: add a core netdev->rx_dropped counter
In various situations, a device provides a packet to our stack and we
drop it before it enters protocol stack :
- softnet backlog full (accounted in /proc/net/softnet_stat)
- bad vlan tag (not accounted)
- unknown/unregistered protocol (not accounted)
We can handle a per-device counter of such dropped frames at core level,
and automatically adds it to the device provided stats (rx_dropped), so
that standard tools can be used (ifconfig, ip link, cat /proc/net/dev)
This is a generalization of commit 8990f468a (net: rx_dropped
accounting), thus reverting it.
Signed-off-by: Eric Dumazet [off-list ref]
Signed-off-by: David S. Miller [off-list ref]