Re: [PATCH v1 net-next] net: dsa: qca: ar9331: add ethtool stats support
From: Jakub Kicinski
Date: Mon Nov 16 2020 - 17:35:48 EST
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.