Commit c7b22841 authored by Jakub Kicinski's avatar Jakub Kicinski
Browse files

selftests: drv-net: iou-zcrx: allocate hugepages for large chunks test

The large chunks test needs 2MB hugepages for its mmap allocation,
but the test system may not have any pre-allocated. Ensure at least
64 hugepages are available before running the test, and restore the
original value on cleanup.

While at it strip the stdout, it has a trailing new line.

Before: ok 5 iou-zcrx.test_zcrx_large_chunks # SKIP Can't allocate huge pages
Link: https://patch.msgid.link/20260227171305.2848240-4-kuba@kernel.org


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 67792dde
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -135,13 +135,21 @@ def test_zcrx_large_chunks(cfg) -> None:

    cfg.require_ipver('6')

    hp_file = "/proc/sys/vm/nr_hugepages"
    with open(hp_file, 'r+', encoding='utf-8') as f:
        nr_hugepages = int(f.read().strip())
        if nr_hugepages < 64:
            f.seek(0)
            f.write("64")
            defer(lambda: open(hp_file, 'w', encoding='utf-8').write(str(nr_hugepages)))

    single(cfg)
    rx_cmd = f"{cfg.bin_local} -s -p {cfg.port} -i {cfg.ifname} -q {cfg.target} -x 2"
    tx_cmd = f"{cfg.bin_remote} -c -h {cfg.addr_v['6']} -p {cfg.port} -l 12840"

    probe = cmd(rx_cmd + " -d", fail=False)
    if probe.ret == SKIP_CODE:
        raise KsftSkipEx(probe.stdout)
        raise KsftSkipEx(probe.stdout.strip())

    with bkg(rx_cmd, exit_wait=True):
        wait_port_listen(cfg.port, proto="tcp")