mirror of
https://github.com/raspberrypi/linux.git
synced 2026-01-03 00:03:44 +00:00
Revertfbbf93556f("selftests: nic_performance: Add selftest for performance of NIC driver") Revertc087dc5439("selftests: nic_link_layer: Add selftest case for speed and duplex states") Revert6116075e18("selftests: nic_link_layer: Add link layer selftest for NIC driver") These tests don't clean up after themselves, don't use the disruptive annotations, don't get included in make install etc. etc. The tests were added before we have any "HW" runner, so the issues were missed. Our CI doesn't have any way of excluding broken tests, remove these for now to stop the random pollution of results due to broken env. We can always add them back once / if fixed. Acked-by: Stanislav Fomichev <sdf@fomichev.me> Reviewed-by: David Wei <dw@davidwei.uk> Link: https://patch.msgid.link/20250507140109.929801-1-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
59 lines
2.0 KiB
Python
59 lines
2.0 KiB
Python
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
import time
|
|
|
|
from lib.py import ksft_pr, cmd, ip, rand_port, wait_port_listen
|
|
|
|
class GenerateTraffic:
|
|
def __init__(self, env, port=None):
|
|
env.require_cmd("iperf3", remote=True)
|
|
|
|
self.env = env
|
|
|
|
if port is None:
|
|
port = rand_port()
|
|
self._iperf_server = cmd(f"iperf3 -s -1 -p {port}", background=True)
|
|
wait_port_listen(port)
|
|
time.sleep(0.1)
|
|
self._iperf_client = cmd(f"iperf3 -c {env.addr} -P 16 -p {port} -t 86400",
|
|
background=True, host=env.remote)
|
|
|
|
# Wait for traffic to ramp up
|
|
if not self._wait_pkts(pps=1000):
|
|
self.stop(verbose=True)
|
|
raise Exception("iperf3 traffic did not ramp up")
|
|
|
|
def _wait_pkts(self, pkt_cnt=None, pps=None):
|
|
"""
|
|
Wait until we've seen pkt_cnt or until traffic ramps up to pps.
|
|
Only one of pkt_cnt or pss can be specified.
|
|
"""
|
|
pkt_start = ip("-s link show dev " + self.env.ifname, json=True)[0]["stats64"]["rx"]["packets"]
|
|
for _ in range(50):
|
|
time.sleep(0.1)
|
|
pkt_now = ip("-s link show dev " + self.env.ifname, json=True)[0]["stats64"]["rx"]["packets"]
|
|
if pps:
|
|
if pkt_now - pkt_start > pps / 10:
|
|
return True
|
|
pkt_start = pkt_now
|
|
elif pkt_cnt:
|
|
if pkt_now - pkt_start > pkt_cnt:
|
|
return True
|
|
return False
|
|
|
|
def wait_pkts_and_stop(self, pkt_cnt):
|
|
failed = not self._wait_pkts(pkt_cnt=pkt_cnt)
|
|
self.stop(verbose=failed)
|
|
|
|
def stop(self, verbose=None):
|
|
self._iperf_client.process(terminate=True)
|
|
if verbose:
|
|
ksft_pr(">> Client:")
|
|
ksft_pr(self._iperf_client.stdout)
|
|
ksft_pr(self._iperf_client.stderr)
|
|
self._iperf_server.process(terminate=True)
|
|
if verbose:
|
|
ksft_pr(">> Server:")
|
|
ksft_pr(self._iperf_server.stdout)
|
|
ksft_pr(self._iperf_server.stderr)
|