[RFC net-next 0/6] selftests: net: add performance metric reporting
From: Stanislav Fomichev <hidden>
Date: 2026-09-16 19:04:14
Sharing as an RFC to get the feedback on the overall approach. Current model is where the ktap side drives system monitoring and nipa only collects/interprets/draws. Another way we can do it is to move system monitoring stuff to nipa. ktap-side monitoring pros/cons: - pro: same format for system vs test metrics (same parser, same aggregator, etc) - pro: test controls when the system collection starts - pro: test controls what the system collects (say, on multi-nic machines, we collect only the things that matter) - pro: local runs produce the same output (and we can add some tools to produce the aggregates for local analysis) - con: bespoke metrics aggregation format defined/exported by the test (but I think we still need it for non-system metrics regardless?) - con: extra code/complexity on ksft side (although it's only SystemMonitor, the rest of this patch series still relevant) nipa-side monitoring pros/cons: - pro: more code stays on nipa side - pro: tests don't care about system side of things, it's always collected on nipa side - pro: each nipa runner can define its own policy/thresholds (although, why would we want it only for the system side and not the test side?) - con: separate collection & parsing (system vs test) - con: local runs need nipa if we want to observe the metrics Stanislav Fomichev (6): selftests: net: py: add timestamped metric output selftests: net: py: add metric policy output selftests: drv-net: add a system performance monitor selftests: drv-net: add an iperf performance test selftests: drv-net: add a kperf runner selftests: drv-net: measure devmem performance with kperf .../testing/selftests/drivers/net/README.rst | 56 ++++ .../testing/selftests/drivers/net/hw/Makefile | 1 + .../selftests/drivers/net/hw/devmem.py | 70 ++++- .../testing/selftests/drivers/net/hw/iperf.py | 21 ++ .../drivers/net/hw/lib/py/__init__.py | 19 +- .../selftests/drivers/net/lib/py/__init__.py | 18 +- .../selftests/drivers/net/lib/py/kperf.py | 148 +++++++++++ .../selftests/drivers/net/lib/py/load.py | 25 +- .../drivers/net/lib/py/system_monitor.py | 240 ++++++++++++++++++ .../testing/selftests/net/lib/py/__init__.py | 12 +- tools/testing/selftests/net/lib/py/ksft.py | 174 ++++++++++++- 11 files changed, 763 insertions(+), 21 deletions(-) create mode 100755 tools/testing/selftests/drivers/net/hw/iperf.py create mode 100644 tools/testing/selftests/drivers/net/lib/py/kperf.py create mode 100644 tools/testing/selftests/drivers/net/lib/py/system_monitor.py -- 2.53.0-Meta