basebuilder_pel7x64builder0
4 years ago
6 changed files with 503 additions and 1 deletions
@ -0,0 +1,144 @@ |
|||||||
|
From c044822affcf1fb21e4f4d26b18f73f152ea2a6d Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= <olysonek@redhat.com> |
||||||
|
Date: Tue, 26 Nov 2019 15:49:39 +0100 |
||||||
|
Subject: [PATCH 1/3] Fix Traceback on reload when the preset profile does not |
||||||
|
exist |
||||||
|
MIME-Version: 1.0 |
||||||
|
Content-Type: text/plain; charset=UTF-8 |
||||||
|
Content-Transfer-Encoding: 8bit |
||||||
|
|
||||||
|
The reload_profile_config() method can pass through a TunedException |
||||||
|
when the requested profile does not exist, or is invalid. We need to |
||||||
|
catch it and log the error. |
||||||
|
|
||||||
|
Resolves: rhbz#1774645 |
||||||
|
Resolves: rhbz#1702724 |
||||||
|
|
||||||
|
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com> |
||||||
|
--- |
||||||
|
tuned/daemon/controller.py | 6 +++++- |
||||||
|
1 file changed, 5 insertions(+), 1 deletion(-) |
||||||
|
|
||||||
|
diff --git a/tuned/daemon/controller.py b/tuned/daemon/controller.py |
||||||
|
index 5e1e9ba2..48c30ea6 100644 |
||||||
|
--- a/tuned/daemon/controller.py |
||||||
|
+++ b/tuned/daemon/controller.py |
||||||
|
@@ -138,7 +138,11 @@ def reload(self, caller = None): |
||||||
|
stop_ok = self.stop() |
||||||
|
if not stop_ok: |
||||||
|
return False |
||||||
|
- self._daemon.reload_profile_config() |
||||||
|
+ try: |
||||||
|
+ self._daemon.reload_profile_config() |
||||||
|
+ except TunedException as e: |
||||||
|
+ log.error("Failed to reload Tuned: %s" % e) |
||||||
|
+ return False |
||||||
|
return self.start() |
||||||
|
|
||||||
|
def _switch_profile(self, profile_name, manual): |
||||||
|
|
||||||
|
From 5d8ef2c0095e999107574ebfb86e735bc048756e Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= <olysonek@redhat.com> |
||||||
|
Date: Tue, 26 Nov 2019 16:53:04 +0100 |
||||||
|
Subject: [PATCH 2/3] Set manual profile mode on tuned-adm off |
||||||
|
MIME-Version: 1.0 |
||||||
|
Content-Type: text/plain; charset=UTF-8 |
||||||
|
Content-Transfer-Encoding: 8bit |
||||||
|
|
||||||
|
To fix rhbz#1774645 and rhbz#1702724, we need to make the |
||||||
|
`Controller.reload` operation behave the same as a Tuned restart even |
||||||
|
in the case when Tuned is running but no profile is applied. If we did |
||||||
|
that, while setting automatic profile mode on `tuned-adm off` (as it |
||||||
|
is currently done), we would end up with a behaviour where `tuned-adm |
||||||
|
off` followed by controller reload would result in the recommended |
||||||
|
profile being applied. |
||||||
|
|
||||||
|
We agreed with Jaroslav that this behaviour wouldn't make sense, so we |
||||||
|
instead decided to change the behaviour of `tuned-adm off` followed by |
||||||
|
Tuned *restart*. Previously, it would result in the recommended |
||||||
|
profile being applied (which doesn't make much sense to us either). So |
||||||
|
we decided to change `tuned-adm off`, so that even after restart, |
||||||
|
Tuned runs with no profile applied, i.e. making `tuned-adm off` set |
||||||
|
manual profile mode. |
||||||
|
|
||||||
|
Related: rhbz#1774645 |
||||||
|
Related: rhbz#1702724 |
||||||
|
|
||||||
|
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com> |
||||||
|
--- |
||||||
|
tuned/daemon/controller.py | 2 +- |
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-) |
||||||
|
|
||||||
|
diff --git a/tuned/daemon/controller.py b/tuned/daemon/controller.py |
||||||
|
index 48c30ea6..5bd4d31a 100644 |
||||||
|
--- a/tuned/daemon/controller.py |
||||||
|
+++ b/tuned/daemon/controller.py |
||||||
|
@@ -219,7 +219,7 @@ def disable(self, caller = None): |
||||||
|
if self._daemon.is_running(): |
||||||
|
self._daemon.stop() |
||||||
|
if self._daemon.is_enabled(): |
||||||
|
- self._daemon.set_profile(None, None, save_instantly=True) |
||||||
|
+ self._daemon.set_profile(None, True, save_instantly=True) |
||||||
|
return True |
||||||
|
|
||||||
|
@exports.export("", "b") |
||||||
|
|
||||||
|
From d545b13dc1e7568af42a59e9721033813eccb61a Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= <olysonek@redhat.com> |
||||||
|
Date: Wed, 27 Nov 2019 10:53:03 +0100 |
||||||
|
Subject: [PATCH 3/3] controller: Proceed with reload even if daemon is not |
||||||
|
running |
||||||
|
MIME-Version: 1.0 |
||||||
|
Content-Type: text/plain; charset=UTF-8 |
||||||
|
Content-Transfer-Encoding: 8bit |
||||||
|
|
||||||
|
To fix rhbz#1774645 and rhbz#1702724, we need to make the |
||||||
|
`Controller.reload` operation behave the same as a Tuned restart even |
||||||
|
in the case when Tuned is running but no profile is applied. To |
||||||
|
achieve that, we must not `return False` from `reload()` when Daemon |
||||||
|
is not running. |
||||||
|
|
||||||
|
I'm not aware of any specific purpose the `return False` could serve, |
||||||
|
other than perhaps making sure that running reload after `tuned-adm |
||||||
|
off` does not result in the recommended profile being applied. This |
||||||
|
case is handled in commit 5d8ef2c0095e9, so I think it should be safe |
||||||
|
now to drop the `return`. |
||||||
|
|
||||||
|
Resolves: rhbz#1774645 |
||||||
|
Resolves: rhbz#1702724 |
||||||
|
|
||||||
|
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com> |
||||||
|
--- |
||||||
|
tuned/daemon/controller.py | 16 +++++++--------- |
||||||
|
1 file changed, 7 insertions(+), 9 deletions(-) |
||||||
|
|
||||||
|
diff --git a/tuned/daemon/controller.py b/tuned/daemon/controller.py |
||||||
|
index 5bd4d31a..18e0bb61 100644 |
||||||
|
--- a/tuned/daemon/controller.py |
||||||
|
+++ b/tuned/daemon/controller.py |
||||||
|
@@ -132,18 +132,16 @@ def stop(self, caller = None): |
||||||
|
def reload(self, caller = None): |
||||||
|
if caller == "": |
||||||
|
return False |
||||||
|
- if not self._daemon.is_running(): |
||||||
|
- return False |
||||||
|
- else: |
||||||
|
+ if self._daemon.is_running(): |
||||||
|
stop_ok = self.stop() |
||||||
|
if not stop_ok: |
||||||
|
return False |
||||||
|
- try: |
||||||
|
- self._daemon.reload_profile_config() |
||||||
|
- except TunedException as e: |
||||||
|
- log.error("Failed to reload Tuned: %s" % e) |
||||||
|
- return False |
||||||
|
- return self.start() |
||||||
|
+ try: |
||||||
|
+ self._daemon.reload_profile_config() |
||||||
|
+ except TunedException as e: |
||||||
|
+ log.error("Failed to reload Tuned: %s" % e) |
||||||
|
+ return False |
||||||
|
+ return self.start() |
||||||
|
|
||||||
|
def _switch_profile(self, profile_name, manual): |
||||||
|
was_running = self._daemon.is_running() |
@ -0,0 +1,69 @@ |
|||||||
|
From 0eb0c6bc7f48afe2f8c1f46ee7c9e7bb08db4163 Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= <olysonek@redhat.com> |
||||||
|
Date: Mon, 6 Jan 2020 15:50:06 +0100 |
||||||
|
Subject: [PATCH] profiles: Make sure variables are defined before use |
||||||
|
MIME-Version: 1.0 |
||||||
|
Content-Type: text/plain; charset=UTF-8 |
||||||
|
Content-Transfer-Encoding: 8bit |
||||||
|
|
||||||
|
Make sure the isolated_cores and no_balance_cores variables are |
||||||
|
defined before any of the variables that use them are defined. This |
||||||
|
enforces a certain ordering of variable expansions so that child |
||||||
|
profiles can set the variables directly in the profile (tuned.conf), |
||||||
|
e.g.: |
||||||
|
|
||||||
|
[main] |
||||||
|
include=cpu-partitioning |
||||||
|
|
||||||
|
[variables] |
||||||
|
isolated_cores=3 |
||||||
|
|
||||||
|
Resolves: rhbz#1781664 |
||||||
|
|
||||||
|
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com> |
||||||
|
--- |
||||||
|
profiles/cpu-partitioning/tuned.conf | 8 ++++++++ |
||||||
|
profiles/realtime/tuned.conf | 4 ++++ |
||||||
|
2 files changed, 12 insertions(+) |
||||||
|
|
||||||
|
diff --git a/profiles/cpu-partitioning/tuned.conf b/profiles/cpu-partitioning/tuned.conf |
||||||
|
index 1821b74e..56977500 100644 |
||||||
|
--- a/profiles/cpu-partitioning/tuned.conf |
||||||
|
+++ b/profiles/cpu-partitioning/tuned.conf |
||||||
|
@@ -10,6 +10,10 @@ include=network-latency |
||||||
|
include=/etc/tuned/cpu-partitioning-variables.conf |
||||||
|
|
||||||
|
isolated_cores_assert_check = \\${isolated_cores} |
||||||
|
+# Make sure isolated_cores is defined before any of the variables that |
||||||
|
+# use it (such as assert1) are defined, so that child profiles can set |
||||||
|
+# isolated_cores directly in the profile (tuned.conf) |
||||||
|
+isolated_cores = ${isolated_cores} |
||||||
|
# Fail if isolated_cores are not set |
||||||
|
assert1=${f:assertion_non_equal:isolated_cores are set:${isolated_cores}:${isolated_cores_assert_check}} |
||||||
|
|
||||||
|
@@ -22,6 +26,10 @@ not_isolated_cores_expanded=${f:cpulist_invert:${isolated_cores_expanded}} |
||||||
|
isolated_cores_online_expanded=${f:cpulist_online:${isolated_cores}} |
||||||
|
not_isolated_cores_online_expanded=${f:cpulist_online:${not_isolated_cores_expanded}} |
||||||
|
not_isolated_cpumask=${f:cpulist2hex:${not_isolated_cores_expanded}} |
||||||
|
+# Make sure no_balance_cores is defined before |
||||||
|
+# no_balance_cores_expanded is defined, so that child profiles can set |
||||||
|
+# no_balance_cores directly in the profile (tuned.conf) |
||||||
|
+no_balance_cores=${no_balance_cores} |
||||||
|
no_balance_cores_expanded=${f:cpulist_unpack:${no_balance_cores}} |
||||||
|
|
||||||
|
# Fail if isolated_cores contains CPUs which are not online |
||||||
|
diff --git a/profiles/realtime/tuned.conf b/profiles/realtime/tuned.conf |
||||||
|
index 6294d0cc..6f5c5b14 100644 |
||||||
|
--- a/profiles/realtime/tuned.conf |
||||||
|
+++ b/profiles/realtime/tuned.conf |
||||||
|
@@ -12,6 +12,10 @@ include = network-latency |
||||||
|
include = /etc/tuned/realtime-variables.conf |
||||||
|
|
||||||
|
isolated_cores_assert_check = \\${isolated_cores} |
||||||
|
+# Make sure isolated_cores is defined before any of the variables that |
||||||
|
+# use it (such as assert1) are defined, so that child profiles can set |
||||||
|
+# isolated_cores directly in the profile (tuned.conf) |
||||||
|
+isolated_cores = ${isolated_cores} |
||||||
|
# Fail if isolated_cores are not set |
||||||
|
assert1=${f:assertion_non_equal:isolated_cores are set:${isolated_cores}:${isolated_cores_assert_check}} |
||||||
|
|
@ -0,0 +1,157 @@ |
|||||||
|
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 |
@ -0,0 +1,16 @@ |
|||||||
|
diff --git a/profiles/realtime-virtual-host/script.sh b/profiles/realtime-virtual-host/script.sh |
||||||
|
index be1804f..bd67303 100755 |
||||||
|
--- a/profiles/realtime-virtual-host/script.sh |
||||||
|
+++ b/profiles/realtime-virtual-host/script.sh |
||||||
|
@@ -30,9 +30,9 @@ run_tsc_deadline_latency() |
||||||
|
-chardev socket,id=char0,nowait,path=$unixpath,server | grep latency | cut -f 2 -d ":" > $dir/out & |
||||||
|
|
||||||
|
sleep 1s |
||||||
|
- pidofvcpu=`echo "info cpus" | nc -U $unixpath | grep thread_id | cut -f 3 -d "=" | tr -d "\r"` |
||||||
|
+ pidofvcpu=`echo "info cpus" | ncat -U $unixpath | grep thread_id | cut -f 3 -d "=" | tr -d "\r"` |
||||||
|
taskset -p -c $1 $pidofvcpu >/dev/null |
||||||
|
- echo "cont" | nc -U $unixpath >/dev/null |
||||||
|
+ echo "cont" | ncat -U $unixpath >/dev/null |
||||||
|
wait |
||||||
|
|
||||||
|
if [ ! -f $dir/out ]; then |
@ -0,0 +1,93 @@ |
|||||||
|
From 14053bc98adfa7f57e7a3ec61ddb1b7b36a7200e Mon Sep 17 00:00:00 2001 |
||||||
|
From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= <olysonek@redhat.com> |
||||||
|
Date: Wed, 27 Nov 2019 12:20:36 +0100 |
||||||
|
Subject: [PATCH] sysctl: Make reapply_sysctl ignore configs from /usr |
||||||
|
MIME-Version: 1.0 |
||||||
|
Content-Type: text/plain; charset=UTF-8 |
||||||
|
Content-Transfer-Encoding: 8bit |
||||||
|
|
||||||
|
The reapply_sysctl functionality was originally added to address |
||||||
|
rhbz#1302953, which was about Tuned overriding sysctl config files |
||||||
|
from /etc, which was deemed undesirable. The bug said nothing about |
||||||
|
sysctl config files from /usr/lib/sysctl.d, /lib/sysctl.d or |
||||||
|
/usr/local/lib/sysctl.d. |
||||||
|
|
||||||
|
Having sysctl configs from /usr override Tuned profiles causes |
||||||
|
problems (rhbz#1759597). Also, it seems reasonable for Tuned profiles |
||||||
|
to override sysctl configs from /usr - a Tuned profile is often |
||||||
|
explicitly chosen by the user, whereas sysctl configs from /usr are |
||||||
|
provided by system packages whether the user wants them or not. |
||||||
|
|
||||||
|
Also, in RHEL-6, tuned used to ignore sysctl config files from /usr, |
||||||
|
as far as I can tell. |
||||||
|
|
||||||
|
Resolves rhbz#1759597 |
||||||
|
|
||||||
|
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com> |
||||||
|
--- |
||||||
|
man/tuned-main.conf.5 | 16 ++++++++-------- |
||||||
|
tuned-main.conf | 7 ++++--- |
||||||
|
tuned/plugins/plugin_sysctl.py | 5 +---- |
||||||
|
3 files changed, 13 insertions(+), 15 deletions(-) |
||||||
|
|
||||||
|
diff --git a/man/tuned-main.conf.5 b/man/tuned-main.conf.5 |
||||||
|
index 9418d258..1c8dba70 100644 |
||||||
|
--- a/man/tuned-main.conf.5 |
||||||
|
+++ b/man/tuned-main.conf.5 |
||||||
|
@@ -61,14 +61,14 @@ applicable if \fBdaemon\fR is enabled. By default it's set to \fBTrue\fR. |
||||||
|
|
||||||
|
.TP |
||||||
|
.BI reapply_sysctl= BOOL |
||||||
|
-This controls whether to reapply sysctl settings from the \fI/etc/sysctl.conf\fR, |
||||||
|
-\fI/etc/sysctl.d/*.conf\fR, \fI/usr/lib/sysctl.d/*.conf\fR, |
||||||
|
-\fI/usr/local/lib/sysctl.d/*.conf\fR, \fI/lib/sysctl.d/*.conf\fR, |
||||||
|
-\fI/run/sysctl.d/*.conf\fR, i.e. all locations supported by |
||||||
|
-\fBsysctl --system\fR after Tuned sysctl settings are applied, i.e. if |
||||||
|
-set to \fBTrue\fR or \fB1\fR Tuned sysctl settings will not override system |
||||||
|
-sysctl settings. If set to \fBFalse\fR or \fB0\fR Tuned sysctl settings will |
||||||
|
-override system sysctl settings. By default it's set to \fBTrue\fR. |
||||||
|
+This controls whether to reapply sysctl settings from \fI/run/sysctl.d/*.conf\fR, |
||||||
|
+\fI/etc/sysctl.d/*.conf\fR and \fI/etc/sysctl.conf\fR after Tuned sysctl |
||||||
|
+settings are applied. These are locations supported by \fBsysctl --system\fR, |
||||||
|
+excluding those that contain sysctl configuration files provided by system packages. |
||||||
|
+So if \fBreapply_sysctl\fR is set to \fBTrue\fR or \fB1\fR, Tuned sysctl settings |
||||||
|
+will not override user-provided system sysctl settings. If set to \fBFalse\fR or |
||||||
|
+\fB0\fR, Tuned sysctl settings will override system sysctl settings. By default |
||||||
|
+it's set to \fBTrue\fR. |
||||||
|
|
||||||
|
.TP |
||||||
|
.BI default_instance_priority= INT |
||||||
|
diff --git a/tuned-main.conf b/tuned-main.conf |
||||||
|
index 6d060e59..40c4be25 100644 |
||||||
|
--- a/tuned-main.conf |
||||||
|
+++ b/tuned-main.conf |
||||||
|
@@ -22,9 +22,10 @@ update_interval = 10 |
||||||
|
# one hardcoded profile (by default "balanced"). |
||||||
|
recommend_command = 1 |
||||||
|
|
||||||
|
-# Whether to reapply sysctl from the e.g /etc/sysctl.conf, /etc/sysctl.d, ... |
||||||
|
-# If enabled these sysctls will be re-appliead after Tuned sysctls are |
||||||
|
-# applied, i.e. Tuned sysctls will not override system sysctls. |
||||||
|
+# Whether to reapply sysctl from /run/sysctl.d/, /etc/sysctl.d/ and |
||||||
|
+# /etc/sysctl.conf. If enabled, these sysctls will be re-appliead |
||||||
|
+# after Tuned sysctls are applied, i.e. Tuned sysctls will not |
||||||
|
+# override user-provided system sysctls. |
||||||
|
reapply_sysctl = 1 |
||||||
|
|
||||||
|
# Default priority assigned to instances |
||||||
|
diff --git a/tuned/plugins/plugin_sysctl.py b/tuned/plugins/plugin_sysctl.py |
||||||
|
index b298bfa8..ee7596d5 100644 |
||||||
|
--- a/tuned/plugins/plugin_sysctl.py |
||||||
|
+++ b/tuned/plugins/plugin_sysctl.py |
||||||
|
@@ -12,10 +12,7 @@ |
||||||
|
|
||||||
|
DEPRECATED_SYSCTL_OPTIONS = [ "base_reachable_time", "retrans_time" ] |
||||||
|
SYSCTL_CONFIG_DIRS = [ "/run/sysctl.d", |
||||||
|
- "/etc/sysctl.d", |
||||||
|
- "/usr/local/lib/sysctl.d", |
||||||
|
- "/usr/lib/sysctl.d", |
||||||
|
- "/lib/sysctl.d" ] |
||||||
|
+ "/etc/sysctl.d" ] |
||||||
|
|
||||||
|
class SysctlPlugin(base.Plugin): |
||||||
|
""" |
Loading…
Reference in new issue