!71 [sync] PR-70: Upgrade to 2.24.1
From: @openeuler-sync-bot Reviewed-by: @liqingqing_1229 Signed-off-by: @liqingqing_1229
This commit is contained in:
commit
f7e8da4cee
25
bugfix-check_positive-has-some-contradictions.patch
Normal file
25
bugfix-check_positive-has-some-contradictions.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
From d55d5c280758b6fed2c8c598a380c3c6cdc11b18 Mon Sep 17 00:00:00 2001
|
||||||
|
From: dufuhang <dufuhang@kylinos.cn>
|
||||||
|
Date: Thu, 19 Sep 2024 14:15:53 +0800
|
||||||
|
Subject: [PATCH] check_positive has some contradictions
|
||||||
|
|
||||||
|
---
|
||||||
|
tuned-adm.py | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/tuned-adm.py b/tuned-adm.py
|
||||||
|
index fcf19e2..6e5ac85 100755
|
||||||
|
--- a/tuned-adm.py
|
||||||
|
+++ b/tuned-adm.py
|
||||||
|
@@ -34,7 +34,7 @@ def check_positive(value):
|
||||||
|
except ValueError:
|
||||||
|
val = -1
|
||||||
|
if val <= 0:
|
||||||
|
- raise argparse.ArgumentTypeError("%s has to be >= 0" % value)
|
||||||
|
+ raise argparse.ArgumentTypeError("%s has to be > 0" % value)
|
||||||
|
return val
|
||||||
|
|
||||||
|
def check_log_level(value):
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
||||||
25
bugfix-expand-variables-in-Plugin.patch
Normal file
25
bugfix-expand-variables-in-Plugin.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
From 48a01d08ea325354c37b8f68c02c28fa424ddff6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Adriaan Schmidt <adriaan.schmidt@siemens.com>
|
||||||
|
Date: Fri, 20 Sep 2024 09:01:54 +0800
|
||||||
|
Subject: [PATCH] fix:expand variables in Plugin._verify_all_device_commands
|
||||||
|
|
||||||
|
---
|
||||||
|
tuned/plugins/base.py | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/tuned/plugins/base.py b/tuned/plugins/base.py
|
||||||
|
index 784d44d..c43cbb6 100644
|
||||||
|
--- a/tuned/plugins/base.py
|
||||||
|
+++ b/tuned/plugins/base.py
|
||||||
|
@@ -452,7 +452,7 @@ class Plugin(object):
|
||||||
|
def _verify_all_device_commands(self, instance, devices, ignore_missing):
|
||||||
|
ret = True
|
||||||
|
for command in [command for command in list(self._commands.values()) if command["per_device"]]:
|
||||||
|
- new_value = instance.options.get(command["name"], None)
|
||||||
|
+ new_value = self._variables.expand(instance.options.get(command["name"], None))
|
||||||
|
if new_value is None:
|
||||||
|
continue
|
||||||
|
for device in devices:
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
||||||
113
profiles-drop-sched_-tuning-where-appropriate.patch
Normal file
113
profiles-drop-sched_-tuning-where-appropriate.patch
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
From c6d6fdcc4c944df9998e0ebe75f31cc8aed452c1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= <jskarvad@redhat.com>
|
||||||
|
Date: Wed, 30 Jun 2021 22:00:19 +0200
|
||||||
|
Subject: [PATCH] profiles: drop sched_ tuning where appropriate
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
According to the performance team measurements the sched_ tuning
|
||||||
|
should be dropped in several profiles.
|
||||||
|
|
||||||
|
Resolves: rhbz#1957829
|
||||||
|
|
||||||
|
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
profiles/latency-performance/tuned.conf | 13 -------------
|
||||||
|
profiles/sap-hana/tuned.conf | 4 ----
|
||||||
|
profiles/throughput-performance/tuned.conf | 22 ----------------------
|
||||||
|
profiles/virtual-host/tuned.conf | 6 ------
|
||||||
|
4 files changed, 45 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/profiles/latency-performance/tuned.conf b/profiles/latency-performance/tuned.conf
|
||||||
|
index 585c836..c780602 100644
|
||||||
|
--- a/profiles/latency-performance/tuned.conf
|
||||||
|
+++ b/profiles/latency-performance/tuned.conf
|
||||||
|
@@ -36,18 +36,5 @@ vm.dirty_background_ratio=3
|
||||||
|
# and move them to swap cache
|
||||||
|
vm.swappiness=10
|
||||||
|
|
||||||
|
-[scheduler]
|
||||||
|
-# ktune sysctl settings for rhel6 servers, maximizing i/o throughput
|
||||||
|
-#
|
||||||
|
-# Minimal preemption granularity for CPU-bound tasks:
|
||||||
|
-# (default: 1 msec# (1 + ilog(ncpus)), units: nanoseconds)
|
||||||
|
-sched_min_granularity_ns = 3000000
|
||||||
|
-sched_wakeup_granularity_ns = 4000000
|
||||||
|
-
|
||||||
|
-# The total time the scheduler will consider a migrated process
|
||||||
|
-# "cache hot" and thus less likely to be re-migrated
|
||||||
|
-# (system default is 500000, i.e. 0.5 ms)
|
||||||
|
-sched_migration_cost_ns = 5000000
|
||||||
|
-
|
||||||
|
[video]
|
||||||
|
panel_power_savings=0
|
||||||
|
diff --git a/profiles/sap-hana/tuned.conf b/profiles/sap-hana/tuned.conf
|
||||||
|
index 8dcee57..aeecf53 100644
|
||||||
|
--- a/profiles/sap-hana/tuned.conf
|
||||||
|
+++ b/profiles/sap-hana/tuned.conf
|
||||||
|
@@ -20,7 +20,3 @@ kernel.numa_balancing = 0
|
||||||
|
vm.dirty_ratio = 40
|
||||||
|
vm.dirty_background_ratio = 10
|
||||||
|
vm.swappiness = 10
|
||||||
|
-
|
||||||
|
-[scheduler]
|
||||||
|
-sched_min_granularity_ns = 3000000
|
||||||
|
-sched_wakeup_granularity_ns = 4000000
|
||||||
|
diff --git a/profiles/throughput-performance/tuned.conf b/profiles/throughput-performance/tuned.conf
|
||||||
|
index 738a8a0..734fedc 100644
|
||||||
|
--- a/profiles/throughput-performance/tuned.conf
|
||||||
|
+++ b/profiles/throughput-performance/tuned.conf
|
||||||
|
@@ -66,21 +66,6 @@ vm.swappiness=10
|
||||||
|
# on older kernels
|
||||||
|
net.core.somaxconn=>2048
|
||||||
|
|
||||||
|
-[scheduler]
|
||||||
|
-# ktune sysctl settings for rhel6 servers, maximizing i/o throughput
|
||||||
|
-#
|
||||||
|
-# Minimal preemption granularity for CPU-bound tasks:
|
||||||
|
-# (default: 1 msec# (1 + ilog(ncpus)), units: nanoseconds)
|
||||||
|
-sched_min_granularity_ns = 10000000
|
||||||
|
-
|
||||||
|
-# SCHED_OTHER wake-up granularity.
|
||||||
|
-# (default: 1 msec# (1 + ilog(ncpus)), units: nanoseconds)
|
||||||
|
-#
|
||||||
|
-# This option delays the preemption effects of decoupled workloads
|
||||||
|
-# and reduces their over-scheduling. Synchronous workloads will still
|
||||||
|
-# have immediate wakeup/sleep latencies.
|
||||||
|
-sched_wakeup_granularity_ns = 15000000
|
||||||
|
-
|
||||||
|
# Marvell ThunderX
|
||||||
|
[sysctl.thunderx]
|
||||||
|
type=sysctl
|
||||||
|
@@ -88,12 +73,5 @@ uname_regex=aarch64
|
||||||
|
cpuinfo_regex=${thunderx_cpuinfo_regex}
|
||||||
|
kernel.numa_balancing=0
|
||||||
|
|
||||||
|
-# AMD
|
||||||
|
-[scheduler.amd]
|
||||||
|
-type=scheduler
|
||||||
|
-uname_regex=x86_64
|
||||||
|
-cpuinfo_regex=${amd_cpuinfo_regex}
|
||||||
|
-sched_migration_cost_ns=5000000
|
||||||
|
-
|
||||||
|
[video]
|
||||||
|
panel_power_savings=0
|
||||||
|
diff --git a/profiles/virtual-host/tuned.conf b/profiles/virtual-host/tuned.conf
|
||||||
|
index 74a5fb0..5301d9f 100644
|
||||||
|
--- a/profiles/virtual-host/tuned.conf
|
||||||
|
+++ b/profiles/virtual-host/tuned.conf
|
||||||
|
@@ -14,9 +14,3 @@ vm.dirty_background_ratio = 5
|
||||||
|
[cpu]
|
||||||
|
# Setting C3 state sleep mode/power savings
|
||||||
|
force_latency=cstate.id_no_zero:3|70
|
||||||
|
-
|
||||||
|
-[scheduler]
|
||||||
|
-# The total time the scheduler will consider a migrated process
|
||||||
|
-# "cache hot" and thus less likely to be re-migrated
|
||||||
|
-# (system default is 500000, i.e. 0.5 ms)
|
||||||
|
-sched_migration_cost_ns = 5000000
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
||||||
@ -1,12 +1,11 @@
|
|||||||
diff --git a/profiles/latency-performance/tuned.conf b/profiles/latency-performance/tuned.conf
|
diff --git a/profiles/latency-performance/tuned.conf b/profiles/latency-performance/tuned.conf
|
||||||
index d200b5c..877229f 100644
|
index c780602..585c836 100644
|
||||||
--- a/profiles/latency-performance/tuned.conf
|
--- a/profiles/latency-performance/tuned.conf
|
||||||
+++ b/profiles/latency-performance/tuned.conf
|
+++ b/profiles/latency-performance/tuned.conf
|
||||||
@@ -32,3 +32,16 @@ vm.dirty_background_ratio=3
|
@@ -36,5 +36,18 @@ vm.dirty_background_ratio=3
|
||||||
# 100 tells the kernel to aggressively swap processes out of physical memory
|
|
||||||
# and move them to swap cache
|
# and move them to swap cache
|
||||||
vm.swappiness=10
|
vm.swappiness=10
|
||||||
+
|
|
||||||
+[scheduler]
|
+[scheduler]
|
||||||
+# ktune sysctl settings for rhel6 servers, maximizing i/o throughput
|
+# ktune sysctl settings for rhel6 servers, maximizing i/o throughput
|
||||||
+#
|
+#
|
||||||
@ -19,6 +18,9 @@ index d200b5c..877229f 100644
|
|||||||
+# "cache hot" and thus less likely to be re-migrated
|
+# "cache hot" and thus less likely to be re-migrated
|
||||||
+# (system default is 500000, i.e. 0.5 ms)
|
+# (system default is 500000, i.e. 0.5 ms)
|
||||||
+sched_migration_cost_ns = 5000000
|
+sched_migration_cost_ns = 5000000
|
||||||
|
+
|
||||||
|
[video]
|
||||||
|
panel_power_savings=0
|
||||||
diff --git a/profiles/sap-hana/tuned.conf b/profiles/sap-hana/tuned.conf
|
diff --git a/profiles/sap-hana/tuned.conf b/profiles/sap-hana/tuned.conf
|
||||||
index aeecf53..8dcee57 100644
|
index aeecf53..8dcee57 100644
|
||||||
--- a/profiles/sap-hana/tuned.conf
|
--- a/profiles/sap-hana/tuned.conf
|
||||||
@ -32,12 +34,12 @@ index aeecf53..8dcee57 100644
|
|||||||
+sched_min_granularity_ns = 3000000
|
+sched_min_granularity_ns = 3000000
|
||||||
+sched_wakeup_granularity_ns = 4000000
|
+sched_wakeup_granularity_ns = 4000000
|
||||||
diff --git a/profiles/throughput-performance/tuned.conf b/profiles/throughput-performance/tuned.conf
|
diff --git a/profiles/throughput-performance/tuned.conf b/profiles/throughput-performance/tuned.conf
|
||||||
index 98c6b26..ebb3f7d 100644
|
index b5e266d..8fb7c04 100644
|
||||||
--- a/profiles/throughput-performance/tuned.conf
|
--- a/profiles/throughput-performance/tuned.conf
|
||||||
+++ b/profiles/throughput-performance/tuned.conf
|
+++ b/profiles/throughput-performance/tuned.conf
|
||||||
@@ -58,9 +58,31 @@ vm.dirty_background_ratio = 10
|
@@ -66,6 +66,21 @@ vm.swappiness=10
|
||||||
# and move them to swap cache
|
# on older kernels
|
||||||
vm.swappiness=10
|
net.core.somaxconn=>2048
|
||||||
|
|
||||||
+[scheduler]
|
+[scheduler]
|
||||||
+# ktune sysctl settings for rhel6 servers, maximizing i/o throughput
|
+# ktune sysctl settings for rhel6 servers, maximizing i/o throughput
|
||||||
@ -57,16 +59,19 @@ index 98c6b26..ebb3f7d 100644
|
|||||||
# Marvell ThunderX
|
# Marvell ThunderX
|
||||||
[sysctl.thunderx]
|
[sysctl.thunderx]
|
||||||
type=sysctl
|
type=sysctl
|
||||||
uname_regex=aarch64
|
@@ -73,5 +88,12 @@ uname_regex=aarch64
|
||||||
cpuinfo_regex=${thunderx_cpuinfo_regex}
|
cpuinfo_regex=${thunderx_cpuinfo_regex}
|
||||||
kernel.numa_balancing=0
|
kernel.numa_balancing=0
|
||||||
+
|
|
||||||
+# AMD
|
+# AMD
|
||||||
+[scheduler.amd]
|
+[scheduler.amd]
|
||||||
+type=scheduler
|
+type=scheduler
|
||||||
+uname_regex=x86_64
|
+uname_regex=x86_64
|
||||||
+cpuinfo_regex=${amd_cpuinfo_regex}
|
+cpuinfo_regex=${amd_cpuinfo_regex}
|
||||||
+sched_migration_cost_ns=5000000
|
+sched_migration_cost_ns=5000000
|
||||||
|
+
|
||||||
|
[video]
|
||||||
|
panel_power_savings=0
|
||||||
diff --git a/profiles/virtual-host/tuned.conf b/profiles/virtual-host/tuned.conf
|
diff --git a/profiles/virtual-host/tuned.conf b/profiles/virtual-host/tuned.conf
|
||||||
index 5301d9f..74a5fb0 100644
|
index 5301d9f..74a5fb0 100644
|
||||||
--- a/profiles/virtual-host/tuned.conf
|
--- a/profiles/virtual-host/tuned.conf
|
||||||
@ -81,3 +86,6 @@ index 5301d9f..74a5fb0 100644
|
|||||||
+# "cache hot" and thus less likely to be re-migrated
|
+# "cache hot" and thus less likely to be re-migrated
|
||||||
+# (system default is 500000, i.e. 0.5 ms)
|
+# (system default is 500000, i.e. 0.5 ms)
|
||||||
+sched_migration_cost_ns = 5000000
|
+sched_migration_cost_ns = 5000000
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
diff --git a/profiles/cpu-partitioning/script.sh b/profiles/cpu-partitioning/script.sh
|
diff --git a/profiles/cpu-partitioning/script.sh b/profiles/cpu-partitioning/script.sh
|
||||||
index 84e04fd..8677050 100755
|
index ec422ca..6e004a3 100755
|
||||||
--- a/profiles/cpu-partitioning/script.sh
|
--- a/profiles/cpu-partitioning/script.sh
|
||||||
+++ b/profiles/cpu-partitioning/script.sh
|
+++ b/profiles/cpu-partitioning/script.sh
|
||||||
@@ -2,6 +2,38 @@
|
@@ -2,6 +2,38 @@
|
||||||
@ -41,17 +41,16 @@ index 84e04fd..8677050 100755
|
|||||||
start() {
|
start() {
|
||||||
mkdir -p "${TUNED_tmpdir}/etc/systemd"
|
mkdir -p "${TUNED_tmpdir}/etc/systemd"
|
||||||
mkdir -p "${TUNED_tmpdir}/usr/lib/dracut/hooks/pre-udev"
|
mkdir -p "${TUNED_tmpdir}/usr/lib/dracut/hooks/pre-udev"
|
||||||
@@ -9,6 +41,9 @@ start() {
|
@@ -9,6 +41,8 @@ start() {
|
||||||
cp 00-tuned-pre-udev.sh "${TUNED_tmpdir}/usr/lib/dracut/hooks/pre-udev/"
|
cp 00-tuned-pre-udev.sh "${TUNED_tmpdir}/usr/lib/dracut/hooks/pre-udev/"
|
||||||
setup_kvm_mod_low_latency
|
setup_kvm_mod_low_latency
|
||||||
disable_ksm
|
disable_ksm
|
||||||
+
|
|
||||||
+ echo "$TUNED_no_balance_cores_expanded" | sed 's/,/ /g' > $no_balance_cpus_file
|
+ echo "$TUNED_no_balance_cores_expanded" | sed 's/,/ /g' > $no_balance_cpus_file
|
||||||
+ disable_balance_domains
|
+ disable_balance_domains
|
||||||
return "$?"
|
return "$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -18,6 +53,7 @@ stop() {
|
@@ -18,6 +52,7 @@ stop() {
|
||||||
teardown_kvm_mod_low_latency
|
teardown_kvm_mod_low_latency
|
||||||
enable_ksm
|
enable_ksm
|
||||||
fi
|
fi
|
||||||
@ -60,7 +59,7 @@ index 84e04fd..8677050 100755
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/profiles/cpu-partitioning/tuned.conf b/profiles/cpu-partitioning/tuned.conf
|
diff --git a/profiles/cpu-partitioning/tuned.conf b/profiles/cpu-partitioning/tuned.conf
|
||||||
index 979e40b..842e2bd 100644
|
index 11f03cf..a682c9c 100644
|
||||||
--- a/profiles/cpu-partitioning/tuned.conf
|
--- a/profiles/cpu-partitioning/tuned.conf
|
||||||
+++ b/profiles/cpu-partitioning/tuned.conf
|
+++ b/profiles/cpu-partitioning/tuned.conf
|
||||||
@@ -35,8 +35,6 @@ no_balance_cores_expanded=${f:cpulist_unpack:${no_balance_cores}}
|
@@ -35,8 +35,6 @@ no_balance_cores_expanded=${f:cpulist_unpack:${no_balance_cores}}
|
||||||
@ -69,12 +68,15 @@ index 979e40b..842e2bd 100644
|
|||||||
|
|
||||||
-cmd_isolcpus=${f:regex_search_ternary:${no_balance_cores}:\s*[0-9]: isolcpus=${no_balance_cores}:}
|
-cmd_isolcpus=${f:regex_search_ternary:${no_balance_cores}:\s*[0-9]: isolcpus=${no_balance_cores}:}
|
||||||
-
|
-
|
||||||
[sysctl]
|
[sysfs]
|
||||||
kernel.hung_task_timeout_secs = 600
|
/sys/bus/workqueue/devices/writeback/cpumask = ${not_isolated_cpumask}
|
||||||
kernel.nmi_watchdog = 0
|
/sys/devices/virtual/workqueue/cpumask = ${not_isolated_cpumask}
|
||||||
@@ -68,4 +66,4 @@ priority=10
|
@@ -62,4 +60,4 @@ priority=10
|
||||||
initrd_remove_dir=True
|
initrd_remove_dir=True
|
||||||
initrd_dst_img=tuned-initrd.img
|
initrd_dst_img=tuned-initrd.img
|
||||||
initrd_add_dir=${tmpdir}
|
initrd_add_dir=${tmpdir}
|
||||||
-cmdline_cpu_part=+nohz=on${cmd_isolcpus} nohz_full=${isolated_cores} rcu_nocbs=${isolated_cores} tuned.non_isolcpus=${not_isolated_cpumask} intel_pstate=disable nosoftlockup
|
-cmdline_cpu_part=+nohz=on${cmd_isolcpus} nohz_full=${isolated_cores} rcu_nocbs=${isolated_cores} tuned.non_isolcpus=${not_isolated_cpumask} intel_pstate=disable nosoftlockup
|
||||||
+cmdline_cpu_part=+nohz=on nohz_full=${isolated_cores} rcu_nocbs=${isolated_cores} tuned.non_isolcpus=${not_isolated_cpumask} intel_pstate=disable nosoftlockup
|
+cmdline_cpu_part=+nohz=on nohz_full=${isolated_cores} rcu_nocbs=${isolated_cores} tuned.non_isolcpus=${not_isolated_cpumask} intel_pstate=disable nosoftlockup
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
BIN
tuned-2.24.1.tar.gz
Normal file
BIN
tuned-2.24.1.tar.gz
Normal file
Binary file not shown.
232
tuned-add-app-sensor-profile.patch
Normal file
232
tuned-add-app-sensor-profile.patch
Normal file
@ -0,0 +1,232 @@
|
|||||||
|
From e8fb537645141bc87425b481e48f8484f05725b8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: hubin <hubin73@huawei.com>
|
||||||
|
Date: Sat, 15 Jul 2023 12:17:36 +0800
|
||||||
|
Subject: [PATCH] tuned: add app-sensor profile
|
||||||
|
|
||||||
|
add application plugin and process monitor support for app-sensor profile.
|
||||||
|
|
||||||
|
if switch to app-sensor, apps given in app-sensor conf file will be
|
||||||
|
monitored, and actions given repectively in app-sensor conf file will
|
||||||
|
be executed when the monitored app starts or quits.
|
||||||
|
|
||||||
|
Signed-off-by: hubin <hubin73@huawei.com>
|
||||||
|
---
|
||||||
|
profiles/app-sensor/tuned.conf | 23 ++++++++
|
||||||
|
tuned/monitors/monitor_process.py | 83 ++++++++++++++++++++++++++++
|
||||||
|
tuned/plugins/plugin_application.py | 84 +++++++++++++++++++++++++++++
|
||||||
|
3 files changed, 190 insertions(+)
|
||||||
|
create mode 100644 profiles/app-sensor/tuned.conf
|
||||||
|
create mode 100644 tuned/monitors/monitor_process.py
|
||||||
|
create mode 100644 tuned/plugins/plugin_application.py
|
||||||
|
|
||||||
|
diff --git a/profiles/app-sensor/tuned.conf b/profiles/app-sensor/tuned.conf
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..771e6ae
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/profiles/app-sensor/tuned.conf
|
||||||
|
@@ -0,0 +1,23 @@
|
||||||
|
+[main]
|
||||||
|
+summary=dynamic tuning for configured apps
|
||||||
|
+
|
||||||
|
+[application]
|
||||||
|
+# Define list of monitored apps, separated by comma.
|
||||||
|
+# Only apps declared in name will be monitored and execute defined action when app starts and quits.
|
||||||
|
+# Definition syntax:
|
||||||
|
+# name={app1},{app2},...
|
||||||
|
+# for example:
|
||||||
|
+# name=redis,mysql
|
||||||
|
+name=
|
||||||
|
+
|
||||||
|
+# Define action or rollback action for each monitored app.
|
||||||
|
+# No definition or blank action means no action.
|
||||||
|
+# Definition syntax:
|
||||||
|
+# {app}_action={command}
|
||||||
|
+# {app}_rollback_action={command}
|
||||||
|
+# for example:
|
||||||
|
+# redis_action="sysctl -w kernel.sched_min_granularity_ns=10000000"
|
||||||
|
+# redis_rollback_action="sysctl -w kernel.sched_min_granularity_ns=3000000"
|
||||||
|
+# mysql_action=
|
||||||
|
+# mysql_rollback_action=
|
||||||
|
+
|
||||||
|
diff --git a/tuned/monitors/monitor_process.py b/tuned/monitors/monitor_process.py
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..524b27a
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tuned/monitors/monitor_process.py
|
||||||
|
@@ -0,0 +1,83 @@
|
||||||
|
+import psutil
|
||||||
|
+import tuned.monitors
|
||||||
|
+import tuned.logs
|
||||||
|
+
|
||||||
|
+log = tuned.logs.get()
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+class ProcessMonitor(tuned.monitors.Monitor):
|
||||||
|
+ app_program_dict = {
|
||||||
|
+ "mysql": ["mysqld"],
|
||||||
|
+ "redis": ["redis-server"],
|
||||||
|
+ "nginx": ["nginx"],
|
||||||
|
+ "unixbench": ["Run"],
|
||||||
|
+ "unixbench-arithoh": ["arithoh"],
|
||||||
|
+ "unixbench-context1": ["context1"],
|
||||||
|
+ "unixbench-dhry2": ["dhry2"],
|
||||||
|
+ "unixbench-dhry2reg": ["dhry2reg"],
|
||||||
|
+ "unixbench-double": ["double"],
|
||||||
|
+ "unixbench-execl": ["execl"],
|
||||||
|
+ "unixbench-float": ["float"],
|
||||||
|
+ "unixbench-fstime": ["fstime"],
|
||||||
|
+ "unixbench-gfx-x11": ["gfx-x11"],
|
||||||
|
+ "unixbench-hanoi": ["hanoi"],
|
||||||
|
+ "unixbench-int": ["int"],
|
||||||
|
+ "unixbench-long": ["long"],
|
||||||
|
+ "unixbench-looper": ["looper"],
|
||||||
|
+ "unixbench-pipe": ["pipe"],
|
||||||
|
+ "unixbench-register": ["register"],
|
||||||
|
+ "unixbench-short": ["short"],
|
||||||
|
+ "unixbench-spawn": ["spawn"],
|
||||||
|
+ "unixbench-syscall": ["syscall"],
|
||||||
|
+ "unixbench-whetstone-double": ["whetstone-double"],
|
||||||
|
+ "fio": ["fio"],
|
||||||
|
+ "iozone": ["iozone"],
|
||||||
|
+ "lmbench": ["lmbench"],
|
||||||
|
+ "netperf": ["netperf"]
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ pid_set = set()
|
||||||
|
+ pid_app_dict = {}
|
||||||
|
+
|
||||||
|
+ @classmethod
|
||||||
|
+ def _init_available_devices(cls):
|
||||||
|
+ cls._available_devices = set(["application"])
|
||||||
|
+ cls._load["application"] = set()
|
||||||
|
+
|
||||||
|
+ @classmethod
|
||||||
|
+ def update(cls):
|
||||||
|
+ cur_pids = set(psutil.pids())
|
||||||
|
+ prev_pids = cls.pid_set
|
||||||
|
+
|
||||||
|
+ # collect new pid and gone pid
|
||||||
|
+ new_pids = cur_pids - prev_pids
|
||||||
|
+ gone_pids = prev_pids - cur_pids
|
||||||
|
+
|
||||||
|
+ # deal with gone pids
|
||||||
|
+ if len(gone_pids) > 0:
|
||||||
|
+ log.debug(f"find {len(gone_pids)} processes gone")
|
||||||
|
+ for pid in gone_pids:
|
||||||
|
+ cls.pid_set.remove(pid)
|
||||||
|
+ if pid in cls.pid_app_dict:
|
||||||
|
+ log.debug(f"app process gone: {cls.pid_app_dict[pid]} (pid {pid})")
|
||||||
|
+ cls.pid_app_dict.pop(pid)
|
||||||
|
+
|
||||||
|
+ # deal with new pids
|
||||||
|
+ if len(new_pids) > 0:
|
||||||
|
+ log.debug(f"find {len(new_pids)} processes created")
|
||||||
|
+ for pid in new_pids:
|
||||||
|
+ try:
|
||||||
|
+ process = psutil.Process(pid)
|
||||||
|
+ process_name = process.name()
|
||||||
|
+ except psutil.NoSuchProcess:
|
||||||
|
+ continue
|
||||||
|
+ cls.pid_set.add(pid)
|
||||||
|
+ # match process name with known applications
|
||||||
|
+ for app in cls.app_program_dict:
|
||||||
|
+ if process_name in cls.app_program_dict[app]:
|
||||||
|
+ cls.pid_app_dict[pid] = app
|
||||||
|
+ log.debug(f"app process created: {cls.pid_app_dict[pid]} (pid {pid})")
|
||||||
|
+ break
|
||||||
|
+
|
||||||
|
+ # output current running applications
|
||||||
|
+ cls._load["application"] = set(cls.pid_app_dict.values())
|
||||||
|
diff --git a/tuned/plugins/plugin_application.py b/tuned/plugins/plugin_application.py
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..946d284
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tuned/plugins/plugin_application.py
|
||||||
|
@@ -0,0 +1,84 @@
|
||||||
|
+import subprocess
|
||||||
|
+from . import base
|
||||||
|
+from . import exceptions
|
||||||
|
+import tuned.logs
|
||||||
|
+from tuned.utils.commands import commands
|
||||||
|
+
|
||||||
|
+log = tuned.logs.get()
|
||||||
|
+
|
||||||
|
+ACTION_TIMEOUT = 180
|
||||||
|
+
|
||||||
|
+class ApplicationPlugin(base.Plugin):
|
||||||
|
+ """
|
||||||
|
+ `application`:
|
||||||
|
+
|
||||||
|
+ Dynamically executes the optimization action according to the application
|
||||||
|
+ running situation.
|
||||||
|
+ """
|
||||||
|
+ last_apps_running = set()
|
||||||
|
+
|
||||||
|
+ def __init__(self, *args, **kwargs):
|
||||||
|
+ super(ApplicationPlugin, self).__init__(*args, **kwargs)
|
||||||
|
+ self._has_dynamic_options = True
|
||||||
|
+
|
||||||
|
+ def _instance_init(self, instance):
|
||||||
|
+ instance._has_static_tuning = False
|
||||||
|
+ instance._has_dynamic_tuning = True
|
||||||
|
+ # save all options
|
||||||
|
+ instance.option_dict = {}
|
||||||
|
+ for option, value in list(instance.options.items()):
|
||||||
|
+ instance.option_dict[option] = value
|
||||||
|
+ log.debug(f"{option}: {value}")
|
||||||
|
+ instance._load_monitor = self._monitors_repository.create("process", None)
|
||||||
|
+
|
||||||
|
+ def _instance_cleanup(self, instance):
|
||||||
|
+ if instance._load_monitor is not None:
|
||||||
|
+ self._monitors_repository.delete(instance._load_monitor)
|
||||||
|
+ instance._load_monitor = None
|
||||||
|
+ instance.option_dict.clear()
|
||||||
|
+
|
||||||
|
+ def _instance_update_dynamic(self, instance, device):
|
||||||
|
+ if "name" not in instance.option_dict:
|
||||||
|
+ return
|
||||||
|
+ applications_monitored = set([app.strip() for app in instance.option_dict["name"].split(',')])
|
||||||
|
+ if not applications_monitored:
|
||||||
|
+ return
|
||||||
|
+ apps_running = applications_monitored.intersection(instance._load_monitor.get_load()["application"])
|
||||||
|
+ log.debug("running: " + str(apps_running))
|
||||||
|
+ new_apps = apps_running - self.last_apps_running
|
||||||
|
+ gone_apps = self.last_apps_running - apps_running
|
||||||
|
+ if len(new_apps) > 0:
|
||||||
|
+ log.info("new apps: " + str(new_apps))
|
||||||
|
+ if len(gone_apps) > 0:
|
||||||
|
+ log.info("gone apps: " + str(gone_apps))
|
||||||
|
+ for app in gone_apps:
|
||||||
|
+ self._execute_action(instance, app, rollback=True)
|
||||||
|
+ for app in new_apps:
|
||||||
|
+ self._execute_action(instance, app, rollback=False)
|
||||||
|
+ self.last_apps_running = apps_running
|
||||||
|
+
|
||||||
|
+ def _instance_unapply_dynamic(self, instance, device):
|
||||||
|
+ # restore previous value
|
||||||
|
+ pass
|
||||||
|
+
|
||||||
|
+ def _execute_action(self, instance, app, rollback=False):
|
||||||
|
+ # find action
|
||||||
|
+ if rollback:
|
||||||
|
+ option = f"{app}_rollback_action"
|
||||||
|
+ else:
|
||||||
|
+ option = f"{app}_action"
|
||||||
|
+ if option not in instance.option_dict:
|
||||||
|
+ return
|
||||||
|
+ action = str(instance.option_dict[option])
|
||||||
|
+ # remove wrapping " or ' in action
|
||||||
|
+ if len(action) >= 2 and (action[0] == '"' or action[0] == "'") and action[0] == action[-1]:
|
||||||
|
+ action = action[1:-1]
|
||||||
|
+ # execute action for app
|
||||||
|
+ if len(action):
|
||||||
|
+ log.info(f"{option}: {action}")
|
||||||
|
+ try:
|
||||||
|
+ p = subprocess.Popen(action, shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
||||||
|
+ retval = p.wait(ACTION_TIMEOUT)
|
||||||
|
+ log.info(f"{option}: return {retval}")
|
||||||
|
+ except Exception as e:
|
||||||
|
+ log.info(f"{option}: {str(e)}")
|
||||||
|
--
|
||||||
|
2.33.0
|
||||||
|
|
||||||
95
tuned.spec
95
tuned.spec
@ -1,9 +1,9 @@
|
|||||||
Summary: A system tuning service for Linux
|
Summary: A system tuning service for Linux
|
||||||
Name: tuned
|
Name: tuned
|
||||||
Version: 2.19.0
|
Version: 2.24.1
|
||||||
Release: 3
|
Release: 1
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
Source0: https://github.com/redhat-performance/%{name}/archive/v%{version}%{?prerel2}.tar.gz#/%{name}-%{version}%{?prerel2}.tar.gz
|
Source0: https://github.com/redhat-performance/%{name}/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
||||||
URL: http://www.tuned-project.org/
|
URL: http://www.tuned-project.org/
|
||||||
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
@ -34,30 +34,34 @@ Patch0: bugfix-tuned-2.8.0-restart-after-kill-dbus.patch
|
|||||||
Patch1: tuned-2.18.0-rhel-8-profiles.patch
|
Patch1: tuned-2.18.0-rhel-8-profiles.patch
|
||||||
Patch2: tuned-2.18.0-sd-load-balance.patch
|
Patch2: tuned-2.18.0-sd-load-balance.patch
|
||||||
Patch3: change-the-default-percentage-when-dirty-data-starts.patch
|
Patch3: change-the-default-percentage-when-dirty-data-starts.patch
|
||||||
|
Patch4: tuned-add-app-sensor-profile.patch
|
||||||
|
Patch5: profiles-drop-sched_-tuning-where-appropriate.patch
|
||||||
|
Patch6: bugfix-check_positive-has-some-contradictions.patch
|
||||||
|
Patch7: bugfix-expand-variables-in-Plugin.patch
|
||||||
|
|
||||||
Provides: tuned-gtk
|
Provides: tuned-gtk = %{version}-%{release}
|
||||||
Provides: tuned-utils
|
Provides: tuned-utils = %{version}-%{release}
|
||||||
Provides: tuned-profiles-sap
|
Provides: tuned-profiles-sap = %{version}-%{release}
|
||||||
Provides: tuned-profiles-mssql
|
Provides: tuned-profiles-mssql = %{version}-%{release}
|
||||||
Provides: tuned-profiles-oracle
|
Provides: tuned-profiles-oracle = %{version}-%{release}
|
||||||
Provides: tuned-profiles-sap-hana
|
Provides: tuned-profiles-sap-hana = %{version}-%{release}
|
||||||
Provides: tuned-profiles-atomic
|
Provides: tuned-profiles-atomic = %{version}-%{release}
|
||||||
Provides: tuned-profiles-nfv
|
Provides: tuned-profiles-nfv = %{version}-%{release}
|
||||||
Provides: tuned-profiles-cpu-partitioning
|
Provides: tuned-profiles-cpu-partitioning = %{version}-%{release}
|
||||||
Provides: tuned-profiles-compat
|
Provides: tuned-profiles-compat = %{version}-%{release}
|
||||||
Provides: tuned-utils-systemtap
|
Provides: tuned-utils-systemtap = %{version}-%{release}
|
||||||
|
|
||||||
Obsoletes: tuned-gtk
|
Obsoletes: tuned-gtk < %{version}-%{release}
|
||||||
Obsoletes: tuned-utils
|
Obsoletes: tuned-utils < %{version}-%{release}
|
||||||
Obsoletes: tuned-profiles-sap
|
Obsoletes: tuned-profiles-sap < %{version}-%{release}
|
||||||
Obsoletes: tuned-profiles-mssql
|
Obsoletes: tuned-profiles-mssql < %{version}-%{release}
|
||||||
Obsoletes: tuned-profiles-oracle
|
Obsoletes: tuned-profiles-oracle < %{version}-%{release}
|
||||||
Obsoletes: tuned-profiles-sap-hana
|
Obsoletes: tuned-profiles-sap-hana < %{version}-%{release}
|
||||||
Obsoletes: tuned-profiles-atomic
|
Obsoletes: tuned-profiles-atomic < %{version}-%{release}
|
||||||
Obsoletes: tuned-profiles-nfv
|
Obsoletes: tuned-profiles-nfv < %{version}-%{release}
|
||||||
Obsoletes: tuned-profiles-cpu-partitioning
|
Obsoletes: tuned-profiles-cpu-partitioning < %{version}-%{release}
|
||||||
Obsoletes: tuned-profiles-compat
|
Obsoletes: tuned-profiles-compat < %{version}-%{release}
|
||||||
Obsoletes: tuned-utils-systemtap
|
Obsoletes: tuned-utils-systemtap < %{version}-%{release}
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Tuned is a daemon that uses udev to monitor connected devices and
|
Tuned is a daemon that uses udev to monitor connected devices and
|
||||||
@ -128,13 +132,13 @@ Requires: tuna
|
|||||||
Recommends: tuned-profiles-nfv-host-bin
|
Recommends: tuned-profiles-nfv-host-bin
|
||||||
|
|
||||||
|
|
||||||
Provides: tuned-profiles-realtime
|
Provides: tuned-profiles-realtime = %{version}-%{release}
|
||||||
Provides: tuned-profiles-nfv-guest
|
Provides: tuned-profiles-nfv-guest = %{version}-%{release}
|
||||||
Provides: tuned-profiles-nfv-host
|
Provides: tuned-profiles-nfv-host = %{version}-%{release}
|
||||||
|
|
||||||
Obsoletes: tuned-profiles-realtime
|
Obsoletes: tuned-profiles-realtime < %{version}-%{release}
|
||||||
Obsoletes: tuned-profiles-nfv-guest
|
Obsoletes: tuned-profiles-nfv-guest < %{version}-%{release}
|
||||||
Obsoletes: tuned-profiles-nfv-host
|
Obsoletes: tuned-profiles-nfv-host < %{version}-%{release}
|
||||||
|
|
||||||
%description profiles-devel
|
%description profiles-devel
|
||||||
Man pages and other related documents for %{name}
|
Man pages and other related documents for %{name}
|
||||||
@ -218,10 +222,6 @@ fi
|
|||||||
|
|
||||||
%files
|
%files
|
||||||
%doc %{docdir}
|
%doc %{docdir}
|
||||||
%doc %{docdir}/README.NFV
|
|
||||||
%doc doc/README.utils
|
|
||||||
%doc doc/README.scomes
|
|
||||||
%doc COPYING
|
|
||||||
%dir %{_datadir}/%{name}
|
%dir %{_datadir}/%{name}
|
||||||
%dir %{_sysconfdir}/%{name}
|
%dir %{_sysconfdir}/%{name}
|
||||||
%dir %{_sysconfdir}/%{name}/recommend.d
|
%dir %{_sysconfdir}/%{name}/recommend.d
|
||||||
@ -243,12 +243,13 @@ fi
|
|||||||
%{_sbindir}/diskdevstat
|
%{_sbindir}/diskdevstat
|
||||||
%{_sbindir}/scomes
|
%{_sbindir}/scomes
|
||||||
|
|
||||||
%exclude %{_prefix}/lib/%{name}/realtime
|
%exclude %{_prefix}/lib/%{name}/profiles/realtime
|
||||||
%exclude %{_prefix}/lib/%{name}/realtime-virtual-guest
|
%exclude %{_prefix}/lib/%{name}/profiles/realtime-virtual-guest
|
||||||
%exclude %{_prefix}/lib/%{name}/realtime-virtual-host
|
%exclude %{_prefix}/lib/%{name}/profiles/realtime-virtual-host
|
||||||
%{_prefix}/lib/%{name}
|
%{_prefix}/lib/%{name}
|
||||||
|
|
||||||
%config(noreplace) %{_sysconfdir}/%{name}/cpu-partitioning-variables.conf
|
%config(noreplace) %{_sysconfdir}/%{name}/cpu-partitioning-variables.conf
|
||||||
|
%config(noreplace) %{_sysconfdir}/%{name}/cpu-partitioning-powersave-variables.conf
|
||||||
%config(noreplace) %{_sysconfdir}/%{name}/%{name}-main.conf
|
%config(noreplace) %{_sysconfdir}/%{name}/%{name}-main.conf
|
||||||
%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/%{name}/active_profile
|
%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/%{name}/active_profile
|
||||||
%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/%{name}/profile_mode
|
%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/%{name}/profile_mode
|
||||||
@ -257,9 +258,8 @@ fi
|
|||||||
%{_bindir}/powertop2%{name}
|
%{_bindir}/powertop2%{name}
|
||||||
%{_libexecdir}/%{name}/defirqaffinity*
|
%{_libexecdir}/%{name}/defirqaffinity*
|
||||||
%{_libexecdir}/%{name}/pmqos-static*
|
%{_libexecdir}/%{name}/pmqos-static*
|
||||||
%{python3_sitelib}/%{name}/gtk
|
|
||||||
%{python3_sitelib}/%{name}
|
%{python3_sitelib}/%{name}
|
||||||
%{_sysconfdir}/dbus-1/system.d/com.redhat.%{name}.conf
|
%{_datadir}/dbus-1/system.d/com.redhat.%{name}.conf
|
||||||
%verify(not size mtime md5) %{_sysconfdir}/modprobe.d/%{name}.conf
|
%verify(not size mtime md5) %{_sysconfdir}/modprobe.d/%{name}.conf
|
||||||
%{_tmpfilesdir}/%{name}.conf
|
%{_tmpfilesdir}/%{name}.conf
|
||||||
%{_unitdir}/%{name}.service
|
%{_unitdir}/%{name}.service
|
||||||
@ -282,11 +282,11 @@ fi
|
|||||||
|
|
||||||
%files profiles-devel
|
%files profiles-devel
|
||||||
%config(noreplace) %{_sysconfdir}/%{name}/realtime-variables.conf
|
%config(noreplace) %{_sysconfdir}/%{name}/realtime-variables.conf
|
||||||
%{_prefix}/lib/%{name}/realtime
|
%{_prefix}/lib/%{name}/profiles/realtime
|
||||||
%config(noreplace) %{_sysconfdir}/%{name}/realtime-virtual-guest-variables.conf
|
%config(noreplace) %{_sysconfdir}/%{name}/realtime-virtual-guest-variables.conf
|
||||||
%{_prefix}/lib/%{name}/realtime-virtual-guest
|
%{_prefix}/lib/%{name}/profiles/realtime-virtual-guest
|
||||||
%config(noreplace) %{_sysconfdir}/%{name}/realtime-virtual-host-variables.conf
|
%config(noreplace) %{_sysconfdir}/%{name}/realtime-virtual-host-variables.conf
|
||||||
%{_prefix}/lib/%{name}/realtime-virtual-host
|
%{_prefix}/lib/%{name}/profiles/realtime-virtual-host
|
||||||
%{_mandir}/man7/%{name}-profiles-realtime.7*
|
%{_mandir}/man7/%{name}-profiles-realtime.7*
|
||||||
%{_mandir}/man7/%{name}-profiles-nfv-guest.7*
|
%{_mandir}/man7/%{name}-profiles-nfv-guest.7*
|
||||||
%{_mandir}/man7/%{name}-profiles-nfv-host.7*
|
%{_mandir}/man7/%{name}-profiles-nfv-host.7*
|
||||||
@ -297,6 +297,11 @@ fi
|
|||||||
%{_mandir}/man7/tuned-profiles-spectrumscale-ece.7*
|
%{_mandir}/man7/tuned-profiles-spectrumscale-ece.7*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Dec 2 2024 Liu Chao <liuchao173@huawei.com> - 2.24.1-1
|
||||||
|
- Upgrade to 2.24.1:
|
||||||
|
- fixed privileged execution of arbitrary scripts by active local user. (CVE-2024-52336)
|
||||||
|
- added sanity checks for API methods parameters. (CVE-2024-52337)
|
||||||
|
|
||||||
* Mon Dec 26 2022 hongrongxuan <hongrongxuan@huawei.com> - 2.19.0-3
|
* Mon Dec 26 2022 hongrongxuan <hongrongxuan@huawei.com> - 2.19.0-3
|
||||||
- change the default percentage when dirty data starts writeback
|
- change the default percentage when dirty data starts writeback
|
||||||
|
|
||||||
@ -309,10 +314,10 @@ fi
|
|||||||
* Fri Jul 30 2021 chenyanpanHW <chenyanpan@huawei.com> - 2.10.0-10
|
* Fri Jul 30 2021 chenyanpanHW <chenyanpan@huawei.com> - 2.10.0-10
|
||||||
- DESC: delete -Sgit from %autosetup, and delete BuildRequires git
|
- DESC: delete -Sgit from %autosetup, and delete BuildRequires git
|
||||||
|
|
||||||
* Fri Mar 05 2020 xinghe <xinghe1@huawei.com> - 2.10.0-9
|
* Fri Mar 05 2021 xinghe <xinghe1@huawei.com> - 2.10.0-9
|
||||||
- powertop2tuned work with PowerTOP 2.13 and newer
|
- powertop2tuned work with PowerTOP 2.13 and newer
|
||||||
|
|
||||||
* Fri Sep 18 2021 xinghe <xinghe1@huawei.com> - 2.10.0-8
|
* Fri Sep 18 2020 xinghe <xinghe1@huawei.com> - 2.10.0-8
|
||||||
- cpu Update checking if EPB is supported
|
- cpu Update checking if EPB is supported
|
||||||
|
|
||||||
* Sun Sep 7 2019 hejingxian<hejingxian@huawei.com> - 2.10.0-7
|
* Sun Sep 7 2019 hejingxian<hejingxian@huawei.com> - 2.10.0-7
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user