From e7aa526a237c5d669b13924245e52418b9159486 Mon Sep 17 00:00:00 2001 From: Saurabh Tandan Date: Tue, 25 Aug 2026 14:39:01 -0700 Subject: [PATCH] DAOS-18586 test: Adding more workload to soak smoke and harasser Adding different workloads to harassers.yaml Increasing default time run for harassers.yaml to 72hrs Adding new workload e3smio to soak infrastructure Test-tag: test_soak_smoke CI_PR_REPOS = E3SM-IO-pkg@PR-1:18 Signed-off-by: Saurabh Tandan --- src/tests/ftest/soak/harassers.yaml | 140 ++++++++++++++++++++++++- src/tests/ftest/soak/smoke.yaml | 21 ++++ src/tests/ftest/util/soak_test_base.py | 4 +- src/tests/ftest/util/soak_utils.py | 21 +++- 4 files changed, 178 insertions(+), 8 deletions(-) diff --git a/src/tests/ftest/soak/harassers.yaml b/src/tests/ftest/soak/harassers.yaml index bad690909b5..629309fefdf 100644 --- a/src/tests/ftest/soak/harassers.yaml +++ b/src/tests/ftest/soak/harassers.yaml @@ -8,7 +8,7 @@ hosts: orterun: allow_run_as_root: true # This timeout must be longer than the test_timeout param (+15minutes) -timeout: 24H30M +timeout: 72H30M setup: start_servers: true start_agents: true @@ -42,10 +42,12 @@ pool_jobs: size: 90% rebuild_timeout: 600 pool_query_timeout: 120 + properties: "scrub:timed,scrub_freq:120,space_rb:8" pool_reserved: size: 5% rebuild_timeout: 600 pool_query_timeout: 120 + properties: "scrub:timed,scrub_freq:120,space_rb:8" container: type: POSIX properties: cksum:crc16,cksum_size:16384,srv_cksum:on @@ -73,13 +75,18 @@ soak_harassers: # harasser test timeout in hours single_test_pool: false test_timeout: - test_soak_online_harassers: 24 - test_soak_offline_harassers: 24 + test_soak_online_harassers: 72 + test_soak_offline_harassers: 72 # maximum timeout for a single job in test in minutes joblist: - ior_harasser - fio_harasser - mdtest_harasser + #- vpic_harasser + - lammps_harasser + - macsio_harasser + - datamover_harasser + - e3smio_harasser # one harrasser is run during each pass of soak jobs harasserlist: test_soak_offline_harassers: @@ -136,8 +143,8 @@ ior_harasser: - '4k' segment_count: 1 dfs_oclass: - - ["EC_2P2GX", "RP_3GX"] - - ["EC_4P2GX", "RP_3GX"] + - ["EC_2P2GX"] + - ["EC_4P2GX"] dfuse: mount_dir: "/tmp/soak_dfuse_ior" disable_caching: true @@ -173,6 +180,60 @@ fio_harasser: dfuse: mount_dir: "/tmp/soak_dfuse_fio/" disable_caching: true +vpic_harasser: + # Requires opeapi + job_timeout: 20 + nodesperjob: + - 1 + taskspernode: + - 32 + cmdline: "${DAOS_TEST_APP_DIR}/vpic-install/bin/harris.Linux" + api: + - POSIX + - POSIX-LIBIOIL + - POSIX-LIBPIL4DFS + workdir: "/tmp/soak_dfuse_vpic/" + dfuse: + mount_dir: "/tmp/soak_dfuse_vpic/" + disable_caching: true + oclass: + - ["EC_2P1GX", "RP_2GX"] +lammps_harasser: + job_timeout: 55 + nodesperjob: + - 8 + taskspernode: + - 32 + cmdline: "${DAOS_TEST_APP_DIR}/lammps/src/lmp_mpi -i ${DAOS_TEST_APP_DIR}/lammps/bench/in.lj" + api: + - POSIX + - POSIX-LIBIOIL + - POSIX-LIBPIL4DFS + workdir: "/tmp/soak_dfuse_lammps/" + dfuse: + mount_dir: "/tmp/soak_dfuse_lammps/" + disable_caching: true + thread_count: 8 + cores: '0-7' + oclass: + - ["EC_2P1GX", "RP_2GX"] +e3smio_harasser: + job_timeout: 20 + nodesperjob: + - 4 + taskspernode: + - 32 + cmdline: "e3sm_io -r 10 -o can_I_out.h5 -a hdf5 -x canonical -k " + api: + - POSIX-LIBPIL4DFS + workdir: "/tmp/soak_dfuse_e3smio/" + dfuse: + mount_dir: "/tmp/soak_dfuse_e3smio/" + disable_caching: true + thread_count: 8 + cores: '0-7' + oclass: + - ["EC_2P1GX", "RP_2GX"] mdtest_harasser: # maximum timeout for a single job in test in minutes job_timeout: 30 @@ -205,6 +266,75 @@ mdtest_harasser: dfuse: mount_dir: "/tmp/soak_dfuse_mdtest/" disable_caching: true +macsio_harasser: + job_timeout: 30 + nodesperjob: + - 1 + - 4 + - 8 + taskspernode: + - 16 + api: + - HDF5 + - HDF5-VOL + interface: hdf5 + parallel_file_mode: SIF 1 + filebase: daos + units_prefix_system: decimal + part_size: 10M + avg_num_parts: 2.5 + num_dumps: 2 + debug_level: 1 + oclass: + - ["SX","SX"] + - ["EC_2P1GX", "RP_2GX"] + # - ["EC_4P1G1", "RP_2GX"] + - ["EC_4P2GX", "RP_3GX"] + # - ["EC_8P2G1", "RP_3GX"] + # - ["EC_16P2GX", "RP_3GX"] + dfuse: + mount_dir: "/tmp/soak_dfuse_macsio/" + disable_caching: true + thread_count: 8 + cores: '0-7' +datamover_harasser: + job_timeout: 10 + nodesperjob: + - 8 + taskspernode: + - 16 + oclass: + - ["SX","SX"] + - ["EC_2P1GX", "RP_2GX"] + # - ["EC_4P1G1", "RP_2GX"] + - ["EC_4P2GX", "RP_3GX"] + # - ["EC_8P2G1", "RP_3GX"] + # - ["EC_16P2GX", "RP_3GX"] + dcp: + bufsize: 1M + chunksize: 1M + ior_write: + api: + - DFS + flags: "-w -F -k" + signature: "5" + transfer_size: + - 1M + block_size: + - 2G + test_file: "daos:/testFile" + dfs_destroy: false + ior_read: + api: + - DFS + flags: "-r -R -F -k" + signature: "5" + transfer_size: + - 1M + block_size: + - 2G + test_file: "daos:/testFile" + dfs_destroy: false hdf5_vol: plugin_path: "/usr/lib64/mpich/lib" events: diff --git a/src/tests/ftest/soak/smoke.yaml b/src/tests/ftest/soak/smoke.yaml index 230b4eb5f03..02b6ae74e8d 100644 --- a/src/tests/ftest/soak/smoke.yaml +++ b/src/tests/ftest/soak/smoke.yaml @@ -40,10 +40,13 @@ server_config: # pool_params - attributes of the pools to create; Currently only create one pool_jobs: size: 90% + properties: "scrub:timed,scrub_freq:120,space_rb:8" pool_reserved: size: 5% + properties: "scrub:timed,scrub_freq:120,space_rb:8" pool_racer: size: 5% + properties: "scrub:timed,scrub_freq:120,space_rb:8" container: type: POSIX properties: cksum:crc16,cksum_size:16384,srv_cksum:on @@ -79,6 +82,7 @@ smoke: - lammps_smoke - macsio_smoke - datamover_smoke + - e3smio_smoke # num of bytes to write to reserved container resv_bytes: 500 enable_intercept_lib: true @@ -196,6 +200,23 @@ lammps_smoke: cores: '0-7' oclass: - ["EC_2P1GX", "RP_2GX"] +e3smio_smoke: + job_timeout: 20 + nodesperjob: + - 4 + taskspernode: + - 32 + cmdline: "e3sm_io -r 10 -o can_I_out.h5 -a hdf5 -x canonical -k " + api: + - POSIX-LIBPIL4DFS + workdir: "/tmp/soak_dfuse_e3smio/" + dfuse: + mount_dir: "/tmp/soak_dfuse_e3smio/" + disable_caching: true + thread_count: 8 + cores: '0-7' + oclass: + - ["EC_2P1GX", "RP_2GX"] mdtest_smoke: # maximum timeout for a single job in test in minutes job_timeout: 10 diff --git a/src/tests/ftest/util/soak_test_base.py b/src/tests/ftest/util/soak_test_base.py index 71c3296f236..138d66d715d 100644 --- a/src/tests/ftest/util/soak_test_base.py +++ b/src/tests/ftest/util/soak_test_base.py @@ -1,6 +1,6 @@ """ (C) Copyright 2019-2024 Intel Corporation. -(C) Copyright 2025 Hewlett Packard Enterprise Development LP +(C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP SPDX-License-Identifier: BSD-2-Clause-Patent """ @@ -448,6 +448,8 @@ def job_setup(self, jobs, pool): commands = create_app_cmdline(self, job, pool, ppn, npj) elif "lammps" in job: commands = create_app_cmdline(self, job, pool, ppn, npj) + elif "e3smio" in job: + commands = create_app_cmdline(self, job, pool, ppn, npj) elif "macsio" in job: commands = create_macsio_cmdline(self, job, pool, ppn, npj) elif "datamover" in job: diff --git a/src/tests/ftest/util/soak_utils.py b/src/tests/ftest/util/soak_utils.py index 3991b810f31..6f8dea2c3ea 100644 --- a/src/tests/ftest/util/soak_utils.py +++ b/src/tests/ftest/util/soak_utils.py @@ -1532,20 +1532,37 @@ def create_app_cmdline(self, job_spec, pool, ppn, nodesperjob): mpirun_cmd.get_params(self) env = EnvironmentVariables() env["D_LOG_FILE_APPEND_PID"] = "1" - if "mpich" in mpi_module: + if "mpich" in mpi_module and "e3smio" not in job_spec: # Pass pool and container information to the commands env["DAOS_UNS_PREFIX"] = format_path(pool, self.container[-1]) if self.enable_il and api == "POSIX-LIBPIL4DFS": env["LD_PRELOAD"] = os.path.join(self.prefix, 'lib64', 'libpil4dfs.so') if self.enable_il and api == "POSIX-LIBIOIL": env["LD_PRELOAD"] = os.path.join(self.prefix, 'lib64', 'libioil.so') + self.log.info(f"<