Commit 0283b8f1 authored by Jakub Kicinski's avatar Jakub Kicinski Committed by Paolo Abeni
Browse files

selftests: drv-net: test the napi init state



Test that threaded state (in the persistent NAPI config) gets updated
even when NAPI with given ID is not allocated at the time.

This test is validating commit ccba9f6b ("net: update NAPI threaded
config even for disabled NAPIs").

Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
Reviewed-by: default avatarJoe Damato <joe@dama.to>
Link: https://patch.msgid.link/20250815013314.2237512-1-kuba@kernel.org


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 730ff06d
Loading
Loading
Loading
Loading
+30 −1
Original line number Diff line number Diff line
@@ -38,6 +38,34 @@ def _setup_deferred_cleanup(cfg) -> None:
    return combined


def napi_init(cfg, nl) -> None:
    """
    Test that threaded state (in the persistent NAPI config) gets updated
    even when NAPI with given ID is not allocated at the time.
    """

    qcnt = _setup_deferred_cleanup(cfg)

    _set_threaded_state(cfg, 1)
    cmd(f"ethtool -L {cfg.ifname} combined 1")
    _set_threaded_state(cfg, 0)
    cmd(f"ethtool -L {cfg.ifname} combined {qcnt}")

    napis = nl.napi_get({'ifindex': cfg.ifindex}, dump=True)
    for napi in napis:
        ksft_eq(napi['threaded'], 'disabled')
        ksft_eq(napi.get('pid'), None)

    cmd(f"ethtool -L {cfg.ifname} combined 1")
    _set_threaded_state(cfg, 1)
    cmd(f"ethtool -L {cfg.ifname} combined {qcnt}")

    napis = nl.napi_get({'ifindex': cfg.ifindex}, dump=True)
    for napi in napis:
        ksft_eq(napi['threaded'], 'enabled')
        ksft_ne(napi.get('pid'), None)


def enable_dev_threaded_disable_napi_threaded(cfg, nl) -> None:
    """
    Test that when napi threaded is enabled at device level and
@@ -103,7 +131,8 @@ def main() -> None:
    """ Ksft boiler plate main """

    with NetDrvEnv(__file__, queue_count=2) as cfg:
        ksft_run([change_num_queues,
        ksft_run([napi_init,
                  change_num_queues,
                  enable_dev_threaded_disable_napi_threaded],
                 args=(cfg, NetdevFamily()))
    ksft_exit()