All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 net-next 0/8] net: dsa: mv88e6xxx: Add "eth-mac" and "rmon" counter group support
@ 2023-12-11 22:33 Tobias Waldekranz
  2023-12-11 22:33 ` [PATCH v3 net-next 1/8] net: dsa: mv88e6xxx: Push locking into stats snapshotting Tobias Waldekranz
                   ` (8 more replies)
  0 siblings, 9 replies; 25+ messages in thread
From: Tobias Waldekranz @ 2023-12-11 22:33 UTC (permalink / raw)
  To: davem, kuba; +Cc: andrew, f.fainelli, olteanv, netdev

The majority of the changes (2/8) are about refactoring the existing
ethtool statistics support to make it possible to read individual
counters, rather than the whole set.

4/8 tries to collect all information about a stat in a single place
using a mapper macro, which is then used to generate the original list
of stats, along with a matching enum. checkpatch is less than amused
with this construct, but prior art exists (__BPF_FUNC_MAPPER in
include/uapi/linux/bpf.h, for example).

To support the histogram counters from the "rmon" group, we have to
change mv88e6xxx's configuration of them. Instead of counting rx and
tx, we restrict them to rx-only. 6/8 has the details.

With that in place, adding the actual counter groups is pretty
straight forward (5,7/8).

Tie it all together with a selftest (8/8).

v2 -> v3:
- Added 6/8
- Added 8/8

v1 -> v2:
- Added 1/6
- Added 3/6
- Changed prototype of stats operation to reflect the fact that the
  number of read stats are returned, no errors
- Moved comma into MV88E6XXX_HW_STAT_MAPPER definition
- Avoid the construction of mapping table iteration which relied on
  struct layouts outside of mv88e6xxx's control

Tobias Waldekranz (8):
  net: dsa: mv88e6xxx: Push locking into stats snapshotting
  net: dsa: mv88e6xxx: Create API to read a single stat counter
  net: dsa: mv88e6xxx: Fix mv88e6352_serdes_get_stats error path
  net: dsa: mv88e6xxx: Give each hw stat an ID
  net: dsa: mv88e6xxx: Add "eth-mac" counter group support
  net: dsa: mv88e6xxx: Limit histogram counters to ingress traffic
  net: dsa: mv88e6xxx: Add "rmon" counter group support
  selftests: forwarding: ethtool_rmon: Add histogram counter test

 drivers/net/dsa/mv88e6xxx/chip.c              | 390 ++++++++++++------
 drivers/net/dsa/mv88e6xxx/chip.h              |  31 +-
 drivers/net/dsa/mv88e6xxx/global1.c           |   7 +-
 drivers/net/dsa/mv88e6xxx/serdes.c            |  10 +-
 drivers/net/dsa/mv88e6xxx/serdes.h            |   8 +-
 .../testing/selftests/net/forwarding/Makefile |   1 +
 .../selftests/net/forwarding/ethtool_rmon.sh  | 106 +++++
 tools/testing/selftests/net/forwarding/lib.sh |   9 +
 8 files changed, 397 insertions(+), 165 deletions(-)
 create mode 100755 tools/testing/selftests/net/forwarding/ethtool_rmon.sh

-- 
2.34.1


^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2023-12-14 12:06 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-11 22:33 [PATCH v3 net-next 0/8] net: dsa: mv88e6xxx: Add "eth-mac" and "rmon" counter group support Tobias Waldekranz
2023-12-11 22:33 ` [PATCH v3 net-next 1/8] net: dsa: mv88e6xxx: Push locking into stats snapshotting Tobias Waldekranz
2023-12-11 22:54   ` Florian Fainelli
2023-12-11 22:33 ` [PATCH v3 net-next 2/8] net: dsa: mv88e6xxx: Create API to read a single stat counter Tobias Waldekranz
2023-12-11 22:55   ` Florian Fainelli
2023-12-14  0:45   ` Vladimir Oltean
2023-12-11 22:33 ` [PATCH v3 net-next 3/8] net: dsa: mv88e6xxx: Fix mv88e6352_serdes_get_stats error path Tobias Waldekranz
2023-12-11 22:55   ` Florian Fainelli
2023-12-11 22:33 ` [PATCH v3 net-next 4/8] net: dsa: mv88e6xxx: Give each hw stat an ID Tobias Waldekranz
2023-12-11 22:56   ` Florian Fainelli
2023-12-11 22:33 ` [PATCH v3 net-next 5/8] net: dsa: mv88e6xxx: Add "eth-mac" counter group support Tobias Waldekranz
2023-12-11 22:57   ` Florian Fainelli
2023-12-11 22:33 ` [PATCH v3 net-next 6/8] net: dsa: mv88e6xxx: Limit histogram counters to ingress traffic Tobias Waldekranz
2023-12-11 23:03   ` Florian Fainelli
2023-12-11 23:35     ` Tobias Waldekranz
2023-12-12  0:13       ` Florian Fainelli
2023-12-14 10:53   ` Vladimir Oltean
2023-12-14 11:51   ` Andrew Lunn
2023-12-14 12:06   ` Vladimir Oltean
2023-12-11 22:33 ` [PATCH v3 net-next 7/8] net: dsa: mv88e6xxx: Add "rmon" counter group support Tobias Waldekranz
2023-12-11 23:04   ` Florian Fainelli
2023-12-11 22:33 ` [PATCH v3 net-next 8/8] selftests: forwarding: ethtool_rmon: Add histogram counter test Tobias Waldekranz
2023-12-11 23:05   ` Florian Fainelli
2023-12-14  0:32   ` Vladimir Oltean
2023-12-13 13:48 ` [PATCH v3 net-next 0/8] net: dsa: mv88e6xxx: Add "eth-mac" and "rmon" counter group support Vladimir Oltean

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.