|
|
984f77 |
From 434b4b64d17e16ed23f90c99c26dbd0e4ce6cd88 Mon Sep 17 00:00:00 2001
|
|
|
984f77 |
From: Lennart Poettering <lennart@poettering.net>
|
|
|
984f77 |
Date: Wed, 24 Nov 2021 15:58:50 +0100
|
|
|
984f77 |
Subject: [PATCH] test: make test-execute pass on Linux 5.15
|
|
|
984f77 |
|
|
|
984f77 |
Linux 5.15 broke kernel API:
|
|
|
984f77 |
|
|
|
984f77 |
https://github.com/torvalds/linux/commit/e70344c05995a190a56bbd1a23dc2218bcc8c924
|
|
|
984f77 |
|
|
|
984f77 |
Previously setting IOPRIO_CLASS_NONE for a process would then report
|
|
|
984f77 |
IOPRIO_CLASS_NONE back. But since 5.15 it reports IOPRIO_CLASS_BE
|
|
|
984f77 |
instead. Since IOPRIO_CLASS_NONE is an alias for a special setting of
|
|
|
984f77 |
IOPRIO_CLASS_BE this makes some sense, but it's also a kernel API
|
|
|
984f77 |
breakage that our testsuite trips up on.
|
|
|
984f77 |
|
|
|
984f77 |
(I made some minimal effort to inform the kernel people about this API
|
|
|
984f77 |
breakage during the 5.15 rc phase, but noone was interested.)
|
|
|
984f77 |
|
|
|
984f77 |
Either way let's hadle this gracefully in our test suite and accept
|
|
|
984f77 |
"best-effort" too when "none" was set.
|
|
|
984f77 |
|
|
|
984f77 |
(This is only triggable if the tests are run on 5.15 with full privs)
|
|
|
984f77 |
|
|
|
984f77 |
(cherry picked from commit d9b8771108cf2955efc3852b477391017d2c599a)
|
|
|
984f77 |
|
|
|
984f77 |
Related: #2087152
|
|
|
984f77 |
---
|
|
|
984f77 |
test/test-execute/exec-ioschedulingclass-none.service | 3 ++-
|
|
|
984f77 |
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
984f77 |
|
|
|
984f77 |
diff --git a/test/test-execute/exec-ioschedulingclass-none.service b/test/test-execute/exec-ioschedulingclass-none.service
|
|
|
984f77 |
index b6af122a1e..8f917d345d 100644
|
|
|
984f77 |
--- a/test/test-execute/exec-ioschedulingclass-none.service
|
|
|
984f77 |
+++ b/test/test-execute/exec-ioschedulingclass-none.service
|
|
|
984f77 |
@@ -2,6 +2,7 @@
|
|
|
984f77 |
Description=Test for IOSchedulingClass=none
|
|
|
984f77 |
|
|
|
984f77 |
[Service]
|
|
|
984f77 |
-ExecStart=/bin/sh -x -c 'c=$$(LC_ALL=C ionice); test "$${c%%:*}" = "none"'
|
|
|
984f77 |
+# Old kernels might report "none" here, new kernels "best-effort".
|
|
|
984f77 |
+ExecStart=/bin/sh -x -c 'c=$$(LC_ALL=C ionice); test "$${c%%:*}" = "none" -o "$${c%%:*}" = "best-effort"'
|
|
|
984f77 |
Type=oneshot
|
|
|
984f77 |
IOSchedulingClass=none
|