Re: [PATCH xenomai-images 1/3] ci: use stress-ng to stress EVL tests
Tobias Schaffner <[email protected]> Wed, 15 Jul 2026 20:47:35 +0200
| Newsgroups | dev.linux.lists.xenomai |
|---|---|
| Message-ID | <[email protected]> |
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. Best, Tobias PS: Taking the chance to share that we now have two EVL boards in the OSADL realtime farm. Running on my 7.0 version port that I had available at the time but will get an update soon: 7.0.0 #1 SMP PREEMPT EVL Starfive/Visionfive 2 https://www.osadl.org/Long-term-latency-plot-of-system-in-rack.qa-3d-latencyplot-r9s8.0.html?shadow=0 7.0.0 #1 SMP PREEMPT EVL NN/Raspberry Pi 4 Model B https://www.osadl.org/Long-term-latency-plot-of-system-in-rack.qa-3d-latencyplot-r9s8.0.html?shadow=1 > >> IMAGE_INSTALL:remove = "sshd-regen-keys" >> IMAGE_INSTALL:remove = "expand-on-first-boot" >> IMAGE_FSTYPES = "${@ 'ext4.gz' if d.getVar('MACHINE', True).startswith('qemu') else 'tar.gz' }" >> -- >> 2.43.0