]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Revert "test: switch TEST-55-OOMD stress-ng --vm-method to lfsr32"
authorLuca Boccassi <luca.boccassi@gmail.com>
Mon, 25 May 2026 10:28:36 +0000 (11:28 +0100)
committerLuca Boccassi <luca.boccassi@gmail.com>
Mon, 25 May 2026 10:28:36 +0000 (11:28 +0100)
This reverts commit 4ac23697280bf54bb768f0aa7a5c7d7d0bcf3f6b.

test/integration-tests/TEST-55-OOMD/TEST-55-OOMD.units/TEST-55-OOMD-testbloat.service
test/integration-tests/TEST-55-OOMD/TEST-55-OOMD.units/TEST-55-OOMD-testmunch.service
test/units/TEST-55-OOMD.sh

index e4109fd60ddf9720f59950a8e81cb5690e56318f..22bbd210e96f5d378751095ab4eb1d5cb34d7de0 100644 (file)
@@ -7,6 +7,7 @@ Description=Create a lot of memory pressure
 # to throttle and be put under heavy pressure.
 MemoryHigh=3M
 Slice=TEST-55-OOMD-workload.slice
-# Pin --vm-method=lfsr32: the only stress-ng vm method without TARGET_CLONES,
-# so it can't dispatch to an AVX-512 clone and SIGILL on CPUs lacking it.
-ExecStart=stress-ng --timeout 3m --vm 10 --vm-bytes 200M --vm-keep --vm-method=lfsr32
+# Pin --vm-method to a portable method (zero-one): the default 'all' cycles
+# through methods, including newer ones using AVX-512 instructions that SIGILL
+# on CPUs without AVX-512 (e.g. AMD Zen 1-3), making the test flaky.
+ExecStart=stress-ng --timeout 3m --vm 10 --vm-bytes 200M --vm-keep --vm-method=zero-one
index 81305c7e974dd59e9cddbf17a08e6e510371f62f..06eea10b79a55e6be3d1f9c36520d5c938fc611d 100644 (file)
@@ -5,6 +5,7 @@ Description=Create some memory pressure
 [Service]
 MemoryHigh=12M
 Slice=TEST-55-OOMD-workload.slice
-# Pin --vm-method=lfsr32: the only stress-ng vm method without TARGET_CLONES,
-# so it can't dispatch to an AVX-512 clone and SIGILL on CPUs lacking it.
-ExecStart=stress-ng --timeout 3m --vm 10 --vm-bytes 200M --vm-keep --vm-method=lfsr32
+# Pin --vm-method to a portable method (zero-one): the default 'all' cycles
+# through methods, including newer ones using AVX-512 instructions that SIGILL
+# on CPUs without AVX-512 (e.g. AMD Zen 1-3), making the test flaky.
+ExecStart=stress-ng --timeout 3m --vm 10 --vm-bytes 200M --vm-keep --vm-method=zero-one
index 84baee12a42942dcc82866b8364df7f7f66a414c..b7311e83dca4eb3155e89a69df1803b9f73d40af 100755 (executable)
@@ -366,12 +366,13 @@ EOF
     systemctl reload systemd-oomd.service
 
     # Run a transient service with OOMRules=testrule that generates memory pressure.
-    # Pin --vm-method=lfsr32: the only stress-ng vm method without TARGET_CLONES,
-    # so it can't dispatch to an AVX-512 clone and SIGILL on CPUs lacking it.
+    # Pin --vm-method to a portable method (zero-one): the default 'all' cycles
+    # through every method, including newer ones using AVX-512 instructions that
+    # SIGILL on CPUs without AVX-512 (e.g. AMD Zen 1-3), making the test flaky.
     (! systemd-run --wait --unit=TEST-55-OOMD-testrules \
         -p MemoryHigh=3M \
         -p OOMRules=testrule \
-        stress-ng --timeout 3m --vm 10 --vm-bytes 50M --vm-keep --vm-method=lfsr32)
+        stress-ng --timeout 3m --vm 10 --vm-bytes 50M --vm-keep --vm-method=zero-one)
 
     # Verify in the journal that the rule triggered
     journalctl --sync
@@ -456,12 +457,14 @@ EOF
 
     # Start the unit without --wait so we can check mid-run state. The
     # stress-ng timeout bounds the test if anything goes wrong.
-    # Pin --vm-method=lfsr32: the only stress-ng vm method without TARGET_CLONES,
-    # so it can't SIGILL on AVX-512-less CPUs and exit before the 6 s wait below.
+    # Pin --vm-method to a portable method (zero-one): the default 'all' cycles
+    # through every method, including newer ones using AVX-512 instructions that
+    # SIGILL on CPUs without AVX-512 (e.g. AMD Zen 1-3) and would cause stress-ng
+    # to exit before the 6 s wait below elapses, failing the ActiveState check.
     systemd-run --unit=TEST-55-OOMD-slowrule \
         -p MemoryHigh=3M \
         -p OOMRules=slowrule \
-        stress-ng --timeout 15s --vm 10 --vm-bytes 50M --vm-keep --vm-method=lfsr32
+        stress-ng --timeout 15s --vm 10 --vm-bytes 50M --vm-keep --vm-method=zero-one
 
     # Wait long enough for oomd's 1s rule-check loop to evaluate the condition
     # many times. With LastingSec=1h the kill must not fire.