Skip to content

Commit 1234810

Browse files
committed
selftests: net-drv: queues: sanity check netlink dumps
This test already catches a netlink bug fixed by this series, but only when running on HW with many queues. Make sure the netdevsim instance created has a lot of queues, and constrain the size of the recv_buffer used by netlink. While at it test both rx and tx queues. Reviewed-by: Joe Damato <[email protected]> Reviewed-by: Petr Machata <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent 0518863 commit 1234810

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

tools/testing/selftests/drivers/net/queues.py

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,28 @@
88
import glob
99

1010

11-
def sys_get_queues(ifname) -> int:
12-
folders = glob.glob(f'/sys/class/net/{ifname}/queues/rx-*')
11+
def sys_get_queues(ifname, qtype='rx') -> int:
12+
folders = glob.glob(f'/sys/class/net/{ifname}/queues/{qtype}-*')
1313
return len(folders)
1414

1515

16-
def nl_get_queues(cfg, nl):
16+
def nl_get_queues(cfg, nl, qtype='rx'):
1717
queues = nl.queue_get({'ifindex': cfg.ifindex}, dump=True)
1818
if queues:
19-
return len([q for q in queues if q['type'] == 'rx'])
19+
return len([q for q in queues if q['type'] == qtype])
2020
return None
2121

2222

2323
def get_queues(cfg, nl) -> None:
24-
queues = nl_get_queues(cfg, nl)
25-
if not queues:
26-
raise KsftSkipEx('queue-get not supported by device')
24+
snl = NetdevFamily(recv_size=4096)
2725

28-
expected = sys_get_queues(cfg.dev['ifname'])
29-
ksft_eq(queues, expected)
26+
for qtype in ['rx', 'tx']:
27+
queues = nl_get_queues(cfg, snl, qtype)
28+
if not queues:
29+
raise KsftSkipEx('queue-get not supported by device')
30+
31+
expected = sys_get_queues(cfg.dev['ifname'], qtype)
32+
ksft_eq(queues, expected)
3033

3134

3235
def addremove_queues(cfg, nl) -> None:
@@ -57,7 +60,7 @@ def addremove_queues(cfg, nl) -> None:
5760

5861

5962
def main() -> None:
60-
with NetDrvEnv(__file__, queue_count=3) as cfg:
63+
with NetDrvEnv(__file__, queue_count=100) as cfg:
6164
ksft_run([get_queues, addremove_queues], args=(cfg, NetdevFamily()))
6265
ksft_exit()
6366

0 commit comments

Comments
 (0)