[PATCH net-next v2 0/1] mlx5: Add netdev-genl queue stats

Joe Damato
2024-05-10T04:17:08Z

Greetings:

Welcome to v2.

I know that this is only 1 patch, so a cover letter isn't necessary, but
worth mentioning a few things.

This change adds support for the per queue netdev-genl API to mlx5,
which seems to output stats:

./cli.py --spec ../../../Documentation/netlink/specs/netdev.yaml \
--dump qstats-get --json '{"scope": "queue"}'

...snip
{'ifindex': 7,
'queue-id': 28,
'queue-type': 'tx',
'tx-bytes': 399462,
'tx-packets': 3311},
...snip

I've used the suggested tooling to verify the per queue stats match
rtnl by doing this:

NETIF=eth0 tools/testing/selftests/drivers/net/stats.py

I've tested the following scenarios:
- The machine at boot (default queue configuration)
- Adjusting the queue configuration to various amounts via ethtool
- Add mqprio TCs
- Removing the mqprio TCs

and in each scenario the stats script above reports that the stats match
rtnl. Hopefully, I got all the test cases right.

Worth noting that Tariq suggested I also export HTB/QOS stats in
mlx5e_get_base_stats.

I am open to doing this, but I think if I were to do that, HTB/QOS queue
stats should also be exported by rtnl so that the script above will
continue to show that the output is correct.

I'd like to propose: adding HTB/QOS to both rtnl *and* the netdev-genl
code together at the same time, but a later time, separate from this
change. Would that be OK?

Special thanks to Jakub, Tariq, Zhu and everyone else who chimed on the
extremely long thread for the v1 trying to help me get this figured out.

Hopefully, this v2 got it right and there won't need to be a v3 :)

Thanks,
Joe

Joe Damato (1):
net/mlx5e: Add per queue netdev-genl stats

.../net/ethernet/mellanox/mlx5/core/en_main.c | 144 ++++++++++++++++++
1 file changed, 144 insertions(+)

--
2.25.1