You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
158 lines
5.5 KiB
158 lines
5.5 KiB
4 years ago
|
From 66924b842228e7178301aa399d30459155b35762 Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= <olysonek@redhat.com>
|
||
|
Date: Tue, 9 Jul 2019 11:31:20 +0200
|
||
|
Subject: [PATCH 1/3] plugin_script: Execute all scripts regardless of errors
|
||
|
MIME-Version: 1.0
|
||
|
Content-Type: text/plain; charset=UTF-8
|
||
|
Content-Transfer-Encoding: 8bit
|
||
|
|
||
|
Due to commit d4038a7e64af3, if a script fails to execute or its exit
|
||
|
code is non-zero, no subsequent scripts are executed. This seems
|
||
|
logically wrong and it causes problems especially during rollback as some
|
||
|
tunings may not be reverted due to this behaviour. Also, it appears it
|
||
|
was not the intention of that commit to change this behaviour - the
|
||
|
intention rather seems to have been to make _call_scripts return
|
||
|
success/error information for use by the verification mechanism.
|
||
|
|
||
|
So let's aggregate the success/error information instead.
|
||
|
|
||
|
Related: https://github.com/redhat-performance/tuned/pull/194
|
||
|
|
||
|
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
|
||
|
---
|
||
|
tuned/plugins/plugin_script.py | 7 ++++---
|
||
|
1 file changed, 4 insertions(+), 3 deletions(-)
|
||
|
|
||
|
diff --git a/tuned/plugins/plugin_script.py b/tuned/plugins/plugin_script.py
|
||
|
index 940c1f9a..19b7fc60 100644
|
||
|
--- a/tuned/plugins/plugin_script.py
|
||
|
+++ b/tuned/plugins/plugin_script.py
|
||
|
@@ -31,6 +31,7 @@ def _instance_cleanup(self, instance):
|
||
|
pass
|
||
|
|
||
|
def _call_scripts(self, scripts, arguments):
|
||
|
+ ret = True
|
||
|
for script in scripts:
|
||
|
environ = os.environ
|
||
|
environ.update(self._variables.get_env())
|
||
|
@@ -47,11 +48,11 @@ def _call_scripts(self, scripts, arguments):
|
||
|
log.error("script '%s' error output: '%s'" % (script, err[:-1]))
|
||
|
if proc.returncode:
|
||
|
log.error("script '%s' returned error code: %d" % (script, proc.returncode))
|
||
|
- return False
|
||
|
+ ret = False
|
||
|
except (OSError,IOError) as e:
|
||
|
log.error("script '%s' error: %s" % (script, e))
|
||
|
- return False
|
||
|
- return True
|
||
|
+ ret = False
|
||
|
+ return ret
|
||
|
|
||
|
def _instance_apply_static(self, instance):
|
||
|
super(ScriptPlugin, self)._instance_apply_static(instance)
|
||
|
|
||
|
From 4a8e64994eb978ada0c7e23702e96c82352cc222 Mon Sep 17 00:00:00 2001
|
||
|
From: Peter Xu <peterx@redhat.com>
|
||
|
Date: Thu, 4 Jul 2019 11:16:54 +0800
|
||
|
Subject: [PATCH 2/3] cpu-partitioning: Introduce irqbalance helpers and use
|
||
|
|
||
|
Provide irqbalance_banned_cpus_{setup|clear} for tuning irqbalance.
|
||
|
Use them in cpu-partitioning.
|
||
|
|
||
|
Signed-off-by: Peter Xu <peterx@redhat.com>
|
||
|
---
|
||
|
profiles/cpu-partitioning/script.sh | 5 ++---
|
||
|
profiles/functions | 11 +++++++++++
|
||
|
2 files changed, 13 insertions(+), 3 deletions(-)
|
||
|
|
||
|
diff --git a/profiles/cpu-partitioning/script.sh b/profiles/cpu-partitioning/script.sh
|
||
|
index efe9bcbb..4d0a08b2 100755
|
||
|
--- a/profiles/cpu-partitioning/script.sh
|
||
|
+++ b/profiles/cpu-partitioning/script.sh
|
||
|
@@ -39,8 +39,7 @@ start() {
|
||
|
mkdir -p "${TUNED_tmpdir}/usr/lib/dracut/hooks/pre-udev"
|
||
|
cp /etc/systemd/system.conf "${TUNED_tmpdir}/etc/systemd/"
|
||
|
cp 00-tuned-pre-udev.sh "${TUNED_tmpdir}/usr/lib/dracut/hooks/pre-udev/"
|
||
|
- sed -i '/^IRQBALANCE_BANNED_CPUS=/d' /etc/sysconfig/irqbalance
|
||
|
- echo "IRQBALANCE_BANNED_CPUS=$TUNED_isolated_cpumask" >>/etc/sysconfig/irqbalance
|
||
|
+ irqbalance_banned_cpus_setup "$TUNED_isolated_cpumask"
|
||
|
setup_kvm_mod_low_latency
|
||
|
disable_ksm
|
||
|
|
||
|
@@ -52,7 +51,7 @@ start() {
|
||
|
stop() {
|
||
|
if [ "$1" = "full_rollback" ]
|
||
|
then
|
||
|
- sed -i '/^IRQBALANCE_BANNED_CPUS=/d' /etc/sysconfig/irqbalance
|
||
|
+ irqbalance_banned_cpus_clear
|
||
|
teardown_kvm_mod_low_latency
|
||
|
enable_ksm
|
||
|
fi
|
||
|
diff --git a/profiles/functions b/profiles/functions
|
||
|
index aab608ad..d52b0818 100644
|
||
|
--- a/profiles/functions
|
||
|
+++ b/profiles/functions
|
||
|
@@ -473,6 +473,17 @@ restore_logs_syncing() {
|
||
|
mv -Z $RSYSLOG_SAVE $RSYSLOG_CFG || mv $RSYSLOG_SAVE $RSYSLOG_CFG
|
||
|
}
|
||
|
|
||
|
+irqbalance_banned_cpus_clear() {
|
||
|
+ sed -i '/^IRQBALANCE_BANNED_CPUS=/d' /etc/sysconfig/irqbalance
|
||
|
+}
|
||
|
+
|
||
|
+irqbalance_banned_cpus_setup() {
|
||
|
+ irqbalance_banned_cpus_clear
|
||
|
+ if [ -n "$1" ]; then
|
||
|
+ echo "IRQBALANCE_BANNED_CPUS=$1" >> /etc/sysconfig/irqbalance
|
||
|
+ fi
|
||
|
+}
|
||
|
+
|
||
|
#
|
||
|
# HARDWARE SPECIFIC tuning
|
||
|
#
|
||
|
|
||
|
From 7e93b6948f0ab2eb10db5abccb71ae1cc489460c Mon Sep 17 00:00:00 2001
|
||
|
From: Peter Xu <peterx@redhat.com>
|
||
|
Date: Thu, 4 Jul 2019 11:18:11 +0800
|
||
|
Subject: [PATCH 3/3] realtime: Apply irqbalance tunes too in realtime profiles
|
||
|
|
||
|
Realtime profiles require to restrict irqbalance too. Apply them to
|
||
|
the realtime profile so that realtime-virtual-{host|guest} can benefit
|
||
|
from that too.
|
||
|
|
||
|
Signed-off-by: Peter Xu <peterx@redhat.com>
|
||
|
---
|
||
|
profiles/realtime/script.sh | 2 ++
|
||
|
profiles/realtime/tuned.conf | 1 +
|
||
|
2 files changed, 3 insertions(+)
|
||
|
|
||
|
diff --git a/profiles/realtime/script.sh b/profiles/realtime/script.sh
|
||
|
index 41517315..e2a2829c 100755
|
||
|
--- a/profiles/realtime/script.sh
|
||
|
+++ b/profiles/realtime/script.sh
|
||
|
@@ -3,10 +3,12 @@
|
||
|
. /usr/lib/tuned/functions
|
||
|
|
||
|
start() {
|
||
|
+ irqbalance_banned_cpus_setup "$TUNED_isolated_cpumask"
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
stop() {
|
||
|
+ irqbalance_banned_cpus_clear
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
diff --git a/profiles/realtime/tuned.conf b/profiles/realtime/tuned.conf
|
||
|
index c595e67b..3100941f 100644
|
||
|
--- a/profiles/realtime/tuned.conf
|
||
|
+++ b/profiles/realtime/tuned.conf
|
||
|
@@ -18,6 +18,7 @@ assert1=${f:assertion_non_equal:isolated_cores are set:${isolated_cores}:${isola
|
||
|
# Non-isolated cores cpumask including offline cores
|
||
|
not_isolated_cpumask = ${f:cpulist2hex_invert:${isolated_cores}}
|
||
|
isolated_cores_expanded=${f:cpulist_unpack:${isolated_cores}}
|
||
|
+isolated_cpumask=${f:cpulist2hex:${isolated_cores_expanded}}
|
||
|
isolated_cores_online_expanded=${f:cpulist_online:${isolated_cores}}
|
||
|
|
||
|
# Fail if isolated_cores contains CPUs which are not online
|