On 27.02.26 18:13, Jakub Kicinski wrote:
> 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
>
> Signed-off-by: Jakub Kicinski <[email protected]>
> ---
> CC: [email protected]
> CC: [email protected]
> CC: [email protected]
> CC: [email protected]
> ---
> tools/testing/selftests/drivers/net/hw/iou-zcrx.py | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/drivers/net/hw/iou-zcrx.py
> b/tools/testing/selftests/drivers/net/hw/iou-zcrx.py
> index 1649c23e05e2..66dd496ec5cf 100755
> --- a/tools/testing/selftests/drivers/net/hw/iou-zcrx.py
> +++ b/tools/testing/selftests/drivers/net/hw/iou-zcrx.py
> @@ -135,13 +135,21 @@ SKIP_CODE = 42
>
> 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())
>
While working on a similar fix I found that the probe here also requires a
barrier.
Thanks,
Dragos