mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 14:41:22 -05:00
selftests: drv-net: don't assume device has only 2 queues
The test is implicitly assuming the device only has 2 queues.
A real device will likely have more. The exact problem is that
because NAPIs get added to the list from the head, the netlink
dump reports them in reverse order. So the naive napis[0] will
actually likely give us the _last_ NAPI, not the first one.
Re-enable all the NAPIs instead of hard-coding 2 in the test.
This way the NAPIs we operated on will always reappear,
doesn't matter where they were in the registration order.
Fixes: e6d7626881 ("net: Update threaded state in napi config in netif_set_threaded")
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Joe Damato <joe@dama.to>
Link: https://patch.msgid.link/20250809001205.1147153-2-kuba@kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
committed by
Paolo Abeni
parent
e93f7af148
commit
bda053d644
@@ -35,6 +35,8 @@ def _setup_deferred_cleanup(cfg) -> None:
|
||||
threaded = cmd(f"cat /sys/class/net/{cfg.ifname}/threaded").stdout
|
||||
defer(_set_threaded_state, cfg, threaded)
|
||||
|
||||
return combined
|
||||
|
||||
|
||||
def enable_dev_threaded_disable_napi_threaded(cfg, nl) -> None:
|
||||
"""
|
||||
@@ -49,7 +51,7 @@ def enable_dev_threaded_disable_napi_threaded(cfg, nl) -> None:
|
||||
napi0_id = napis[0]['id']
|
||||
napi1_id = napis[1]['id']
|
||||
|
||||
_setup_deferred_cleanup(cfg)
|
||||
qcnt = _setup_deferred_cleanup(cfg)
|
||||
|
||||
# set threaded
|
||||
_set_threaded_state(cfg, 1)
|
||||
@@ -62,7 +64,7 @@ def enable_dev_threaded_disable_napi_threaded(cfg, nl) -> None:
|
||||
nl.napi_set({'id': napi1_id, 'threaded': 'disabled'})
|
||||
|
||||
cmd(f"ethtool -L {cfg.ifname} combined 1")
|
||||
cmd(f"ethtool -L {cfg.ifname} combined 2")
|
||||
cmd(f"ethtool -L {cfg.ifname} combined {qcnt}")
|
||||
_assert_napi_threaded_enabled(nl, napi0_id)
|
||||
_assert_napi_threaded_disabled(nl, napi1_id)
|
||||
|
||||
@@ -80,7 +82,7 @@ def change_num_queues(cfg, nl) -> None:
|
||||
napi0_id = napis[0]['id']
|
||||
napi1_id = napis[1]['id']
|
||||
|
||||
_setup_deferred_cleanup(cfg)
|
||||
qcnt = _setup_deferred_cleanup(cfg)
|
||||
|
||||
# set threaded
|
||||
_set_threaded_state(cfg, 1)
|
||||
@@ -90,7 +92,7 @@ def change_num_queues(cfg, nl) -> None:
|
||||
_assert_napi_threaded_enabled(nl, napi1_id)
|
||||
|
||||
cmd(f"ethtool -L {cfg.ifname} combined 1")
|
||||
cmd(f"ethtool -L {cfg.ifname} combined 2")
|
||||
cmd(f"ethtool -L {cfg.ifname} combined {qcnt}")
|
||||
|
||||
# check napi threaded is set for both napis
|
||||
_assert_napi_threaded_enabled(nl, napi0_id)
|
||||
|
||||
Reference in New Issue
Block a user