On Tue, 17 Nov 2020 00:21:46 +0200 Vladimir Oltean wrote: > On Mon, Nov 16, 2020 at 01:34:53PM -0800, Jakub Kicinski wrote: > > You must expose relevant statistics via the normal get_stats64 NDO > > before you start dumping free form stuff in ethtool -S. > > Completely agree on the point, Jakub, but to be honest we don't give him > that possibility within the DSA framework today, see .ndo_get_stats64 in > net/dsa/slave.c which returns the generic dev_get_tstats64 implementation, > and not something that hooks into the hardware counters, or into the > driver at all, for that matter. Simple matter of coding, right? I don't see a problem. Also I only mentioned .ndo_get_stats64, but now we also have stats in ethtool->get_pause_stats. > But it's good that you raise the point, I was thinking too that we > should do better in terms of keeping the software counters in sync with > the hardware. But what would be a good reference for keeping statistics > on an offloaded interface? Is it ok to just populate the netdev counters > based on the hardware statistics? IIRC the stats on the interface should be a sum of forwarded in software and in hardware. Which in practice means interface HW stats are okay, given eventually both forwarding types end up in the HW interface (/MAC block). > And what about the statistics gathered > today in software, could we return them maybe via something like ifstat > --extended=cpu_hits? Yup, exactly, that's what --extended=cpu_hits is for.