Re: [PATCH xenomai-images 1/3] ci: use stress-ng to stress EVL tests
Jan Kiszka <[email protected]> Thu, 16 Jul 2026 08:22:42 +0200
| Newsgroups | dev.linux.lists.xenomai |
|---|---|
| Message-ID | <[email protected]> |
On 15.07.26 20:47, Tobias Schaffner wrote: > Hi Florian, > > On 7/15/26 15:00, Florian Bezdeka wrote: >> On Wed, 2026-07-15 at 11:28 +0200, Tobias Schaffner wrote: >>> Use stress-ng to apply CPU, virtual memory, FPU register, and procfs >>> load >>> during EVL tests, mimicking the stressors used in Xenomai 3. >>> >>> Signed-off-by: Tobias Schaffner <[email protected]> >>> --- >>> ci/lib/gitlab-ci-base.yml | 2 ++ >>> ci/xenomai_4_evl.yml | 2 +- >>> ci/xenomai_4_next.yml | 2 +- >>> kas/opt/ci.yaml | 1 + >>> 4 files changed, 5 insertions(+), 2 deletions(-) >>> >>> diff --git a/ci/lib/gitlab-ci-base.yml b/ci/lib/gitlab-ci-base.yml >>> index 0540628..a3359bb 100644 >>> --- a/ci/lib/gitlab-ci-base.yml >>> +++ b/ci/lib/gitlab-ci-base.yml >>> @@ -25,6 +25,8 @@ variables: >>> ADDITIONAL_TEST_TIMEOUT_MINUTES: 10 >>> TEST_MAXIMUM_LATENCY: 0 >>> TEST_COMMAND: "xeno-test -k -l 'dohell -m /tmp >>> ${TEST_RUNTIME_SECONDS}' ${ADDITIONAL_XENO_TEST_ARGS}" >>> + EVL_STRESS_COMMAND: stress-ng --cpu 1 --vm 1 --vm-bytes 64M --fp 1 >>> --procfs 1 >>> + EVL_TEST_COMMAND: evl test --stress-cmd "${EVL_STRESS_COMMAND}" -k >>> $(evl test -l | grep -Ev "${EVL_TESTS_SKIP_PATTERN}") >>> SSTATE_LOCATION: "s3://xenomai-images-artifacts/sstate" >>> SSTATE_MIRRORS: "file://.* ${SSTATE_LOCATION}/ >>> PATH;downloadfilename=PATH" >>> SSTATE_MAX_AGE: 14d >>> diff --git a/ci/xenomai_4_evl.yml b/ci/xenomai_4_evl.yml >>> index 283a1fd..c6a92b8 100644 >>> --- a/ci/xenomai_4_evl.yml >>> +++ b/ci/xenomai_4_evl.yml >>> @@ -29,4 +29,4 @@ variables: >>> XENOMAI_VERSION: "4-next" >>> BUILD_IDENTIFIER: "evl-${XENOMAI_VERSION}_kernel-${KERNEL_VERSION}" >>> CACHE_KERNEL: evl >>> - TEST_COMMAND: "evl test -k $(evl test -l | grep -Ev >>> \"${EVL_TESTS_SKIP_PATTERN}\")" >>> + TEST_COMMAND: "${EVL_TEST_COMMAND}" >>> diff --git a/ci/xenomai_4_next.yml b/ci/xenomai_4_next.yml >>> index 6ef4b6a..7ecfbb5 100644 >>> --- a/ci/xenomai_4_next.yml >>> +++ b/ci/xenomai_4_next.yml >>> @@ -21,4 +21,4 @@ variables: >>> KERNEL_VERSION_WITH_QEMU: "head" >>> BUILD_IDENTIFIER: "evl-${XENOMAI_VERSION}_kernel-${KERNEL_VERSION}" >>> CACHE_KERNEL: evl >>> - TEST_COMMAND: "evl test -k $(evl test -l | grep -Ev >>> \"${EVL_TESTS_SKIP_PATTERN}\")" >>> + TEST_COMMAND: "${EVL_TEST_COMMAND}" >>> diff --git a/kas/opt/ci.yaml b/kas/opt/ci.yaml >>> index e1466a0..f9e4bb7 100644 >>> --- a/kas/opt/ci.yaml >>> +++ b/kas/opt/ci.yaml >>> @@ -20,6 +20,7 @@ local_conf_header: >>> xenomai-ci: | >>> ROOTFS_POSTPROCESS_COMMAND:remove = >>> "image_postprocess_sshd_key_regen" >>> IMAGE_INSTALL += "customizations-ci" >>> + IMAGE_PREINSTALL += "stress-ng" >> >> Hm... As the CI configuration is now requesting stress-ng it seems right >> that it is pre-installed by the CI image. >> >> OTOH I hate those loose dependencies. Maybe the (lib)evl test package >> should pull it in instead? So that the dependency is handled at package >> level. Someone else might like to install the test package and get all >> dependencies accordingly. >> >> To solve that properly it might make sense to make stress-ng the default >> stressor. That would allow the packaging to properly depend on it, >> instead of only "suggest" stress-ng. > > I see your point but the decision to not make it a dependency was > intended. > > First stress-ng is a debugging and evaluation tool and we do not want to > have it installed in production most of the time. > > Second there are indeed persons/projects that have specialized other > loads. OSADL for example is using unix-bench in its realtime farm. > > But most important this is a huge dependency. The large number of > libs needed for all the implemented stressors adds up to a total of > ~240MB. Imo that is to large for libevl which also targets embedded > systems. There is xenomai-testsuite on xenomai 3, and we have libevl-test here. Both need a hard dependency on a stress backend in order to run their measurement-based tests. If any of them supports multiple options, then you model that instead ("stress-ng | unix-bench", e.g.). None of that would bloat libevl, xenomai-runtime or whatever you use for production. Jan -- Siemens AG, Foundational Technologies Linux Expert Center