From cd4bff36c379cdf6f6a2c81342ef7f1d04c93f8d Mon Sep 17 00:00:00 2001 From: Seth Zegelstein Date: Fri, 1 Mar 2024 18:21:24 +0000 Subject: [PATCH] fabtests: Add progress models to SHM/EFA fabtests Set SHM/EFA performance fabtests to use data_progress=FI_PROGRESS_MANUAL and control_progress=FI_PROGRESS_CONTROL_UNIFIED Signed-off-by: Seth Zegelstein --- fabtests/pytest/common.py | 4 ++++ fabtests/pytest/efa/test_rdm.py | 11 ++++++++--- fabtests/pytest/efa/test_rma_bw.py | 5 +++-- fabtests/pytest/efa/test_rma_pingpong.py | 3 ++- fabtests/pytest/shm/test_rdm.py | 10 +++++++--- fabtests/pytest/shm/test_rma_bw.py | 3 ++- fabtests/pytest/shm/test_rma_pingpong.py | 3 ++- 7 files changed, 28 insertions(+), 11 deletions(-) diff --git a/fabtests/pytest/common.py b/fabtests/pytest/common.py index be1b54620c6..23fb3b98837 100644 --- a/fabtests/pytest/common.py +++ b/fabtests/pytest/common.py @@ -13,8 +13,12 @@ from retrying import retry import pytest + +perf_progress_model_cli = "--data-progress manual --control-progress unified" SERVER_RESTART_DELAY_MS = 10_1000 CLIENT_RETRY_INTERVAL_MS = 1_000 + + class SshConnectionError(Exception): def __init__(self): diff --git a/fabtests/pytest/efa/test_rdm.py b/fabtests/pytest/efa/test_rdm.py index a16736e1b05..ab7d1bb8d80 100644 --- a/fabtests/pytest/efa/test_rdm.py +++ b/fabtests/pytest/efa/test_rdm.py @@ -1,5 +1,6 @@ from default.test_rdm import test_rdm, test_rdm_bw_functional from efa.efa_common import efa_run_client_server_test +from common import perf_progress_model_cli import pytest import copy @@ -9,7 +10,8 @@ [pytest.param("short", marks=pytest.mark.short), pytest.param("standard", marks=pytest.mark.standard)]) def test_rdm_pingpong(cmdline_args, iteration_type, completion_semantic, memory_type, completion_type): - efa_run_client_server_test(cmdline_args, "fi_rdm_pingpong", iteration_type, + command = "fi_rdm_pingpong" + " " + perf_progress_model_cli + efa_run_client_server_test(cmdline_args, command, iteration_type, completion_semantic, memory_type, "all", completion_type=completion_type) @pytest.mark.functional @@ -32,7 +34,8 @@ def test_rdm_pingpong_no_inject_range(cmdline_args, completion_semantic, inject_ [pytest.param("short", marks=pytest.mark.short), pytest.param("standard", marks=pytest.mark.standard)]) def test_rdm_tagged_pingpong(cmdline_args, iteration_type, completion_semantic, memory_type, completion_type): - efa_run_client_server_test(cmdline_args, "fi_rdm_tagged_pingpong", iteration_type, + command = "fi_rdm_tagged_pingpong" + " " + perf_progress_model_cli + efa_run_client_server_test(cmdline_args, command, iteration_type, completion_semantic, memory_type, "all", completion_type=completion_type) @pytest.mark.functional @@ -44,7 +47,8 @@ def test_rdm_tagged_pingpong_range(cmdline_args, completion_semantic, memory_typ [pytest.param("short", marks=pytest.mark.short), pytest.param("standard", marks=pytest.mark.standard)]) def test_rdm_tagged_bw(cmdline_args, iteration_type, completion_semantic, memory_type, completion_type): - efa_run_client_server_test(cmdline_args, "fi_rdm_tagged_bw", iteration_type, + command = "fi_rdm_tagged_bw" + " " + perf_progress_model_cli + efa_run_client_server_test(cmdline_args, command, iteration_type, completion_semantic, memory_type, "all", completion_type=completion_type) @pytest.mark.functional @@ -82,6 +86,7 @@ def test_rdm_atomic(cmdline_args, iteration_type, completion_semantic, memory_ty # the issue is tracked in: https://github.com/ofiwg/libfabric/issues/7002 # to mitigate the issue, set the maximum timeout of fi_rdm_atomic to 1800 seconds. cmdline_args_copy = copy(cmdline_args) + command = "fi_rdm_atomic" + " " + perf_progress_model_cli test = ClientServerTest(cmdline_args_copy, "fi_rdm_atomic", iteration_type, completion_semantic, memory_type=memory_type, timeout=1800) test.run() diff --git a/fabtests/pytest/efa/test_rma_bw.py b/fabtests/pytest/efa/test_rma_bw.py index a11a7e0847d..69a2388bc32 100644 --- a/fabtests/pytest/efa/test_rma_bw.py +++ b/fabtests/pytest/efa/test_rma_bw.py @@ -1,4 +1,5 @@ from efa.efa_common import efa_run_client_server_test +from common import perf_progress_model_cli import pytest import copy @@ -9,7 +10,7 @@ pytest.param("standard", marks=pytest.mark.standard)]) def test_rma_bw(cmdline_args, iteration_type, operation_type, completion_semantic, memory_type): command = "fi_rma_bw -e rdm" - command = command + " -o " + operation_type + command = command + " -o " + operation_type + " " + perf_progress_model_cli # rma_bw test with data verification takes longer to finish timeout = max(540, cmdline_args.timeout) efa_run_client_server_test(cmdline_args, command, iteration_type, completion_semantic, memory_type, "all", timeout=timeout) @@ -22,7 +23,7 @@ def test_rma_bw_small_tx_rx(cmdline_args, operation_type, completion_semantic, m cmdline_args_copy.append_environ(env_var) # Use a window size larger than tx/rx size command = "fi_rma_bw -e rdm -W 128" - command = command + " -o " + operation_type + command = command + " -o " + operation_type + " " + perf_progress_model_cli # rma_bw test with data verification takes longer to finish timeout = max(540, cmdline_args_copy.timeout) efa_run_client_server_test(cmdline_args_copy, command, "short", completion_semantic, memory_type, "all", timeout=timeout) diff --git a/fabtests/pytest/efa/test_rma_pingpong.py b/fabtests/pytest/efa/test_rma_pingpong.py index 608e88fdd0c..b14c0d88891 100644 --- a/fabtests/pytest/efa/test_rma_pingpong.py +++ b/fabtests/pytest/efa/test_rma_pingpong.py @@ -1,4 +1,5 @@ from efa.efa_common import efa_run_client_server_test +from common import perf_progress_model_cli import pytest @@ -10,7 +11,7 @@ def test_rma_pingpong(cmdline_args, iteration_type, operation_type, completion_s if memory_type != "host_to_host" and operation_type == "write": pytest.skip("no hmem memory support for pingpong_rma write test") command = "fi_rma_pingpong -e rdm" - command = command + " -o " + operation_type + command = command + " -o " + operation_type + " " + perf_progress_model_cli # rma_pingpong test with data verification takes longer to finish timeout = max(540, cmdline_args.timeout) efa_run_client_server_test(cmdline_args, command, iteration_type, completion_semantic, memory_type, "all", timeout=timeout) diff --git a/fabtests/pytest/shm/test_rdm.py b/fabtests/pytest/shm/test_rdm.py index 54657e9e504..9be0bdafd52 100644 --- a/fabtests/pytest/shm/test_rdm.py +++ b/fabtests/pytest/shm/test_rdm.py @@ -1,13 +1,15 @@ import pytest from default.test_rdm import test_rdm, \ test_rdm_bw_functional, test_rdm_atomic +from common import perf_progress_model_cli from shm.shm_common import shm_run_client_server_test @pytest.mark.parametrize("iteration_type", [pytest.param("short", marks=pytest.mark.short), pytest.param("standard", marks=pytest.mark.standard)]) def test_rdm_pingpong(cmdline_args, iteration_type, completion_semantic, memory_type, completion_type): - shm_run_client_server_test(cmdline_args, "fi_rdm_pingpong", iteration_type, + command = "fi_rdm_pingpong" + " " + perf_progress_model_cli + shm_run_client_server_test(cmdline_args, command, iteration_type, completion_semantic, memory_type, completion_type=completion_type) @@ -15,7 +17,8 @@ def test_rdm_pingpong(cmdline_args, iteration_type, completion_semantic, memory_ [pytest.param("short", marks=pytest.mark.short), pytest.param("standard", marks=pytest.mark.standard)]) def test_rdm_tagged_pingpong(cmdline_args, iteration_type, completion_semantic, memory_type, completion_type): - shm_run_client_server_test(cmdline_args, "fi_rdm_tagged_pingpong", iteration_type, + command = "fi_rdm_tagged_pingpong" + " " + perf_progress_model_cli + shm_run_client_server_test(cmdline_args, command, iteration_type, completion_semantic, memory_type, completion_type=completion_type) @@ -23,7 +26,8 @@ def test_rdm_tagged_pingpong(cmdline_args, iteration_type, completion_semantic, [pytest.param("short", marks=pytest.mark.short), pytest.param("standard", marks=pytest.mark.standard)]) def test_rdm_tagged_bw(cmdline_args, iteration_type, completion_semantic, memory_type, completion_type): - shm_run_client_server_test(cmdline_args, "fi_rdm_tagged_bw", iteration_type, + command = "fi_rdm_tagged_bw" + " " + perf_progress_model_cli + shm_run_client_server_test(cmdline_args, command, iteration_type, completion_semantic, memory_type, completion_type=completion_type) @pytest.mark.functional diff --git a/fabtests/pytest/shm/test_rma_bw.py b/fabtests/pytest/shm/test_rma_bw.py index 56721d67565..833b5ea690c 100644 --- a/fabtests/pytest/shm/test_rma_bw.py +++ b/fabtests/pytest/shm/test_rma_bw.py @@ -1,5 +1,6 @@ import pytest from shm.shm_common import shm_run_client_server_test +from common import perf_progress_model_cli @pytest.mark.parametrize("operation_type", ["read", "writedata", "write"]) @@ -8,7 +9,7 @@ pytest.param("standard", marks=pytest.mark.standard)]) def test_rma_bw(cmdline_args, iteration_type, operation_type, completion_semantic, memory_type): command = "fi_rma_bw -e rdm" - command = command + " -o " + operation_type + command = command + " -o " + operation_type + " " + perf_progress_model_cli # rma_bw test with data verification takes longer to finish timeout = max(540, cmdline_args.timeout) shm_run_client_server_test(cmdline_args, command, iteration_type, completion_semantic, memory_type, "all", timeout=timeout) diff --git a/fabtests/pytest/shm/test_rma_pingpong.py b/fabtests/pytest/shm/test_rma_pingpong.py index 3147f7d2296..3ff780a073d 100644 --- a/fabtests/pytest/shm/test_rma_pingpong.py +++ b/fabtests/pytest/shm/test_rma_pingpong.py @@ -1,5 +1,6 @@ import pytest from shm.shm_common import shm_run_client_server_test +from common import perf_progress_model_cli @pytest.mark.parametrize("operation_type", ["writedata", "write"]) @@ -10,7 +11,7 @@ def test_rma_pingpong(cmdline_args, iteration_type, operation_type, completion_s if memory_type != "host_to_host" and operation_type == "write": pytest.skip("no hmem memory support for pingpong_rma write test") command = "fi_rma_pingpong -e rdm" - command = command + " -o " + operation_type + command = command + " -o " + operation_type + " " + perf_progress_model_cli # rma_pingpong test with data verification takes longer to finish timeout = max(540, cmdline_args.timeout) shm_run_client_server_test(cmdline_args, command, iteration_type, completion_semantic, memory_type, "all", timeout=timeout)