Upgrade to 2.24.1

Signed-off-by: SuperSix173 <liuchao173@huawei.com>
This commit is contained in:
SuperSix173 2024-12-02 14:31:40 +08:00
parent 1440a8f31f
commit 352eafca0b
22 changed files with 634 additions and 520 deletions

View File

@ -1,25 +0,0 @@
From 52bc058e7acea20e8c7aa1d7a03cfb3a4e4439e3 Mon Sep 17 00:00:00 2001
From: hongrongxuan <hongrongxuan@huawei.com>
Date: Fri, 4 Aug 2023 11:22:51 +0800
Subject: [PATCH] support nvme subsystem to be tuned
---
tuned/plugins/plugin_disk.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tuned/plugins/plugin_disk.py b/tuned/plugins/plugin_disk.py
index b651374..30766ec 100644
--- a/tuned/plugins/plugin_disk.py
+++ b/tuned/plugins/plugin_disk.py
@@ -41,7 +41,7 @@ class DiskPlugin(hotplug.Plugin):
return device.device_type == "disk" and \
device.attributes.get("removable", None) == b"0" and \
(device.parent is None or \
- device.parent.subsystem in ["scsi", "virtio", "xen"])
+ device.parent.subsystem in ["scsi", "virtio", "xen", "nvme"])
def _hardware_events_init(self):
self._hardware_inventory.subscribe(self, "block", self._hardware_events_callback)
--
2.27.0

View File

@ -1,38 +0,0 @@
From 6678c472abbd5f645dbb99ab2946c0e35ded7499 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= <olysonek@redhat.com>
Date: Tue, 10 Jul 2018 00:24:00 +0200
Subject: [PATCH] tuned-adm: Fix a traceback when run without action specified
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Running tuned-adm without an action specified using Python 3 results
in a traceback. This is because in this case parse_args does not
exit with a usage message in Python 3 and the 'action' option
is then undefined.
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
---
tuned-adm.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/tuned-adm.py b/tuned-adm.py
index 1b9623d..1df8cc3 100755
--- a/tuned-adm.py
+++ b/tuned-adm.py
@@ -100,7 +100,11 @@ if __name__ == "__main__":
debug = options.pop("debug")
asynco = options.pop("async")
timeout = options.pop("timeout")
- action_name = options.pop("action")
+ try:
+ action_name = options.pop("action")
+ except KeyError:
+ parser.print_usage(file = sys.stderr)
+ sys.exit(1)
log_level = options.pop("loglevel")
result = False
--
2.14.4

View File

@ -1,35 +0,0 @@
From d46834808c3226b3a6e48649df65befc399c21cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= <olysonek@redhat.com>
Date: Wed, 11 Jul 2018 00:41:45 +0200
Subject: [PATCH] tuned-gui: Sort plugins based on their name
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Previously the sorting was done by comparing the objects themselves,
which is not what we want and it doesn't work in Python 3 - TypeError
is raised, e.g:
TypeError: '<' not supported between instances of 'BootloaderPlugin' and 'MountsPlugin'
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
---
tuned-gui.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tuned-gui.py b/tuned-gui.py
index 8f72fd5..e486687 100755
--- a/tuned-gui.py
+++ b/tuned-gui.py
@@ -278,7 +278,8 @@ class Base(object):
self.treestore_profiles = Gtk.ListStore(GObject.TYPE_STRING,
GObject.TYPE_STRING)
self.treestore_plugins = Gtk.ListStore(GObject.TYPE_STRING)
- for plugin in sorted(self.plugin_loader.plugins):
+ for plugin in sorted(self.plugin_loader.plugins,
+ key = lambda plugin: plugin.name):
self.treestore_plugins.append([plugin.name])
self.combobox_plugins = \
self.builder.get_object('comboboxPlugins')
--
2.14.4

View File

@ -1,73 +0,0 @@
From 4790e570ce0e41bde4e1866ed6e3cba723b5f4d8 Mon Sep 17 00:00:00 2001
From: Marcelo Tosatti <mtosatti@redhat.com>
Date: Wed, 4 Jul 2018 17:30:37 -0300
Subject: [PATCH 005/124] realtime-virtual-host: pin only the vcpu thread to
isolated pCPU (v2)
As noted in the bugzilla ticket
https://bugzilla.redhat.com/show_bug.cgi?id=1554851
The QEMU I/O thread can interrupt the time measurement
of the timer. To avoid this problem, only
pin the vCPU thread.
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Reviewed-and-Tested-by: Luiz Capitulino <lcapitulino@redhat.com>
v2:
- Use unix sockets (Luiz)
- Proper numeric output (Luiz)
---
profiles/realtime-virtual-host/script.sh | 31 +++++++++++++++++++++----------
1 file changed, 21 insertions(+), 10 deletions(-)
diff --git a/profiles/realtime-virtual-host/script.sh b/profiles/realtime-virtual-host/script.sh
index 515d254..32e962d 100755
--- a/profiles/realtime-virtual-host/script.sh
+++ b/profiles/realtime-virtual-host/script.sh
@@ -17,20 +17,31 @@ run_tsc_deadline_latency()
for i in `seq 1000 500 7000`; do
echo $i > $KVM_LAPIC_FILE
- chrt -f 1 taskset -c $1 $QEMU -enable-kvm -device pc-testdev \
+
+ unixpath=`mktemp`
+
+ chrt -f 1 $QEMU -S -enable-kvm -device pc-testdev \
-device isa-debug-exit,iobase=0xf4,iosize=0x4 \
-display none -serial stdio -device pci-testdev \
-kernel "$TSCDEADLINE_LATENCY" \
- -cpu host | grep latency | cut -f 2 -d ":" > $dir/out
-
- if [ ! -f $dir/out ]; then
- die running $TSCDEADLINE_LATENCY failed
- fi
+ -cpu host \
+ -mon chardev=char0,mode=readline \
+ -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"`
+ taskset -p -c $1 $pidofvcpu >/dev/null
+ echo "cont" | nc -U $unixpath >/dev/null
+ wait
+
+ if [ ! -f $dir/out ]; then
+ die running $TSCDEADLINE_LATENCY failed
+ fi
- tmp=$(wc -l $dir/out | awk '{ print $1 }')
- if [ $tmp -eq 0 ]; then
- die running $TSCDEADLINE_LATENCY failed
- fi
+ tmp=$(wc -l $dir/out | awk '{ print $1 }')
+ if [ $tmp -eq 0 ]; then
+ die running $TSCDEADLINE_LATENCY failed
+ fi
A=0
while read l; do
--
1.8.3.1

View File

@ -1,25 +0,0 @@
From 5c61305860a9520e01b1b66a0bd2fa2b21d70b34 Mon Sep 17 00:00:00 2001
From: Tomas Korbar <tkorbar@redhat.com>
Date: Mon, 23 Jul 2018 14:25:38 +0200
Subject: [PATCH 029/124] Fix TypeError
---
tuned/admin/admin.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tuned/admin/admin.py b/tuned/admin/admin.py
index 3f84413..22ffcde 100644
--- a/tuned/admin/admin.py
+++ b/tuned/admin/admin.py
@@ -73,7 +73,7 @@ class Admin(object):
action = getattr(self, "_action_" + action_name)
except AttributeError as e:
if not self._dbus:
- self._error(e + ", action '%s' is not implemented" % action_name)
+ self._error(str(e) + ", action '%s' is not implemented" % action_name)
return False
if self._dbus:
try:
--
1.8.3.1

View File

@ -1,36 +0,0 @@
From c4f83e29567204eed4eef38bd47393dde88f6134 Mon Sep 17 00:00:00 2001
From: Tomas Korbar <tkorbar@redhat.com>
Date: Tue, 21 Aug 2018 14:38:13 +0200
Subject: [PATCH 040/124] Fix pickle provider
- pickle.load and pickle.dump methods take as a argument
a bytes-like object not a str, python 2.7 is overlooking this but
python 3 is not
---
tuned/storage/pickle_provider.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tuned/storage/pickle_provider.py b/tuned/storage/pickle_provider.py
index 832a9f8..771704d 100644
--- a/tuned/storage/pickle_provider.py
+++ b/tuned/storage/pickle_provider.py
@@ -31,14 +31,14 @@ class PickleProvider(interfaces.Provider):
def save(self):
try:
log.debug("Saving %s" % str(self._data))
- with open(self._path, "w") as f:
+ with open(self._path, "wb") as f:
pickle.dump(self._data, f)
except (OSError, IOError) as e:
log.error("Error saving storage file '%s': %s" % (self._path, e))
def load(self):
try:
- with open(self._path, "r") as f:
+ with open(self._path, "rb") as f:
self._data = pickle.load(f)
except (OSError, IOError) as e:
log.debug("Error loading storage file '%s': %s" % (self._path, e))
--
1.8.3.1

View File

@ -1,35 +0,0 @@
From 2cc3d747986837d7e7957f5a4baede2dd691348a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= <olysonek@redhat.com>
Date: Thu, 24 Jan 2019 16:28:24 +0100
Subject: [PATCH 070/124] plugin_disk: Fix checking the 'removable' attribute
on python3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The 'removable' attribute is a bytestring, so it will never be equal to
"0" in python3. Check equality with b"0" instead.
The patch was originally written by Tomáš Korbař.
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
---
tuned/plugins/plugin_disk.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tuned/plugins/plugin_disk.py b/tuned/plugins/plugin_disk.py
index 1de1257..65504d8 100644
--- a/tuned/plugins/plugin_disk.py
+++ b/tuned/plugins/plugin_disk.py
@@ -39,7 +39,7 @@ class DiskPlugin(hotplug.Plugin):
@classmethod
def _device_is_supported(cls, device):
return device.device_type == "disk" and \
- device.attributes.get("removable", None) == "0" and \
+ device.attributes.get("removable", None) == b"0" and \
(device.parent is None or \
device.parent.subsystem in ["scsi", "virtio", "xen"])
--
1.8.3.1

View File

@ -1,29 +0,0 @@
From a2219675f29fae94540868bf63f36f62c61b92c7 Mon Sep 17 00:00:00 2001
From: Tomas Korbar <tkorbar@redhat.com>
Date: Wed, 12 Dec 2018 14:48:09 +0100
Subject: [PATCH 074/124] fix disk plugin/plugout problem
when udev sends remove event it does not send any device
attributes with it so _device_is_supported check must be omitted
Resolves: rhbz#1595156
---
tuned/plugins/plugin_disk.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tuned/plugins/plugin_disk.py b/tuned/plugins/plugin_disk.py
index 1de1257..56e56f4 100644
--- a/tuned/plugins/plugin_disk.py
+++ b/tuned/plugins/plugin_disk.py
@@ -50,7 +50,7 @@ class DiskPlugin(hotplug.Plugin):
self._hardware_inventory.unsubscribe(self)
def _hardware_events_callback(self, event, device):
- if self._device_is_supported(device):
+ if self._device_is_supported(device) or event == "remove":
super(DiskPlugin, self)._hardware_events_callback(event, device)
def _added_device_apply_tuning(self, instance, device_name):
--
1.8.3.1

View File

@ -1,60 +0,0 @@
From 9e6913231d307590fd6a9bc024be549aaa2d8c5e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= <olysonek@redhat.com>
Date: Tue, 5 Mar 2019 10:31:42 +0100
Subject: [PATCH 099/124] Fix checking for None values
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In python, 'is None' should be used instead of '== None' to check if
something is None.
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
---
experiments/kwin-stop/xlib-example.py | 2 +-
tuned/plugins/plugin_systemd.py | 2 +-
tuned/profiles/merger.py | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/experiments/kwin-stop/xlib-example.py b/experiments/kwin-stop/xlib-example.py
index b8477a5..a0d6206 100644
--- a/experiments/kwin-stop/xlib-example.py
+++ b/experiments/kwin-stop/xlib-example.py
@@ -32,7 +32,7 @@ def loop():
root = dpy.screen(num).root
for win in root.get_full_property(dpy.get_atom('_NET_CLIENT_LIST'), 0).value.tolist():
window = dpy.create_resource_object('window', win)
- if window.get_full_property(dpy.get_atom('_NET_WM_STATE'), Xatom.WINDOW) == None:
+ if window.get_full_property(dpy.get_atom('_NET_WM_STATE'), Xatom.WINDOW) is None:
continue
if dpy.get_atom("_NET_WM_STATE_HIDDEN") in window.get_full_property(dpy.get_atom('_NET_WM_STATE'), 0).value.tolist():
if not win in hidden:
diff --git a/tuned/plugins/plugin_systemd.py b/tuned/plugins/plugin_systemd.py
index f6857c5..8f6bbc8 100644
--- a/tuned/plugins/plugin_systemd.py
+++ b/tuned/plugins/plugin_systemd.py
@@ -61,7 +61,7 @@ class SystemdPlugin(base.Plugin):
def _read_systemd_system_conf(self):
systemd_system_conf = self._cmd.read_file(consts.SYSTEMD_SYSTEM_CONF_FILE, err_ret = None)
- if systemd_system_conf == None:
+ if systemd_system_conf is None:
log.error("error reading systemd configuration file")
return None
return systemd_system_conf
diff --git a/tuned/profiles/merger.py b/tuned/profiles/merger.py
index 7a3e05c..2364543 100644
--- a/tuned/profiles/merger.py
+++ b/tuned/profiles/merger.py
@@ -33,7 +33,7 @@ class Merger(object):
profile_a.units[unit_name].type = unit.type
profile_a.units[unit_name].enabled = unit.enabled
profile_a.units[unit_name].devices = unit.devices
- if unit.devices_udev_regex != None:
+ if unit.devices_udev_regex is not None:
profile_a.units[unit_name].devices_udev_regex = unit.devices_udev_regex
if unit.script_pre is not None:
profile_a.units[unit_name].script_pre = unit.script_pre
--
1.8.3.1

View 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

View 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

View File

@ -0,0 +1,26 @@
From 9045cc4a583ea644fa1ef8454e4c3d2c63a9d248 Mon Sep 17 00:00:00 2001
From: hongrongxuan <hongrongxuan@huawei.com>
Date: Mon, 26 Dec 2022 09:29:48 +0800
Subject: [PATCH] change the default percentage when dirty data starts
writeback
---
profiles/throughput-performance/tuned.conf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/profiles/throughput-performance/tuned.conf b/profiles/throughput-performance/tuned.conf
index 98c6b26..84ca25a 100644
--- a/profiles/throughput-performance/tuned.conf
+++ b/profiles/throughput-performance/tuned.conf
@@ -35,7 +35,7 @@ readahead=>4096
#
# The generator of dirty data starts writeback at this percentage (system default
# is 20%)
-vm.dirty_ratio = 40
+vm.dirty_ratio = 60
# Start background writeback (via writeback threads) at this percentage (system
# default is 10%)
--
2.27.0

View File

@ -1,45 +0,0 @@
From 43375e6bbe389606fbd24d0a84535285a1a8040c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= <olysonek@redhat.com>
Date: Thu, 17 Sep 2020 18:57:24 +0800
Subject: [PATCH] cpu: Update checking if EPB is supported
Update checking if EPB is supported so that it works with recent
versions of the x86_energy_perf_policy tool. Newer versions of
x86_energy_perf_policy, unlike older versions, exit with a zero exit
code even if the CPU doesn't support EPB. Newer versions of the tool
give no ouput on stdout if EPB is not supported, so check for that.
In the future, we might like to determine if EPB is supported by
searching /proc/cpuinfo for specific CPU flags. However the solution
described in the previous paragraph should work just fine for now.
Resolves: rhbz#1690929
Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
https://github.com/redhat-performance/tuned/pull/217/commits/43375e6bbe389606fbd24d0a84535285a1a8040c
---
tuned/plugins/plugin_cpu.py | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/tuned/plugins/plugin_cpu.py b/tuned/plugins/plugin_cpu.py
index 8f0babd..4934022 100644
--- a/tuned/plugins/plugin_cpu.py
+++ b/tuned/plugins/plugin_cpu.py
@@ -61,8 +61,11 @@ class CPULatencyPlugin(base.Plugin):
def _check_energy_perf_bias(self):
self._has_energy_perf_bias = False
retcode_unsupported = 1
- retcode = self._cmd.execute(["x86_energy_perf_policy", "-r"], no_errors = [errno.ENOENT, retcode_unsupported])[0]
- if retcode == 0:
+ retcode, out = self._cmd.execute(["x86_energy_perf_policy", "-r"], no_errors = [errno.ENOENT, retcode_unsupported])
+ # With recent versions of the tool, a zero exit code is
+ # returned even if EPB is not supported. The output is empty
+ # in that case, however.
+ if retcode == 0 and out != "":
self._has_energy_perf_bias = True
elif retcode < 0:
log.warning("unable to run x86_energy_perf_policy tool, ignoring CPU energy performance bias, is the tool installed?")
--
2.23.0

View 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

View File

@ -1,18 +0,0 @@
--- a/Makefile
+++ b/Makefile
@@ -30,12 +30,12 @@ VERSIONED_NAME = $(NAME)-$(VERSION)$(GIT_PSUFFIX)
SYSCONFDIR = /etc
DATADIR = /usr/share
DOCDIR = $(DATADIR)/doc/$(NAME)
-PYTHON = python3
+PYTHON = /usr/bin/python3
PYLINT = pylint-3
ifeq ($(PYTHON),python2)
PYLINT = pylint-2
endif
-SHEBANG_REWRITE_REGEX= '1s/^(\#!\/usr\/bin\/)\<python\>/\1$(PYTHON)/'
+SHEBANG_REWRITE_REGEX= '1s|^\#!/usr/bin/\<python\>|\#!$(PYTHON)|'
PYTHON_SITELIB = $(shell $(PYTHON) -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib());')
ifeq ($(PYTHON_SITELIB),)
$(error Failed to determine python library directory)

View File

@ -1,60 +0,0 @@
From f19b7c5713acb76a200811f6531acf2791505cac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= <jskarvad@redhat.com>
Date: Wed, 4 Jul 2018 23:27:38 +0200
Subject: [PATCH] Fixed compatibility with python-3.7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In python-3.7 async is a keyword, so it cannot be redefined.
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
---
tuned-adm.py | 4 ++--
tuned/admin/admin.py | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/tuned-adm.py b/tuned-adm.py
index ea85c54..1b9623d 100755
--- a/tuned-adm.py
+++ b/tuned-adm.py
@@ -98,7 +98,7 @@ if __name__ == "__main__":
options = vars(args)
debug = options.pop("debug")
- async = options.pop("async")
+ asynco = options.pop("async")
timeout = options.pop("timeout")
action_name = options.pop("action")
log_level = options.pop("loglevel")
@@ -107,7 +107,7 @@ if __name__ == "__main__":
dbus = config.get_bool(consts.CFG_DAEMON, consts.CFG_DEF_DAEMON)
try:
- admin = tuned.admin.Admin(dbus, debug, async, timeout, log_level)
+ admin = tuned.admin.Admin(dbus, debug, asynco, timeout, log_level)
result = admin.action(action_name, **options)
except:
diff --git a/tuned/admin/admin.py b/tuned/admin/admin.py
index 728af32..3f84413 100644
--- a/tuned/admin/admin.py
+++ b/tuned/admin/admin.py
@@ -14,12 +14,12 @@ import threading
import logging
class Admin(object):
- def __init__(self, dbus = True, debug = False, async = False,
+ def __init__(self, dbus = True, debug = False, asynco = False,
timeout = consts.ADMIN_TIMEOUT,
log_level = logging.ERROR):
self._dbus = dbus
self._debug = debug
- self._async = async
+ self._async = asynco
self._timeout = timeout
self._cmd = commands(debug)
self._profiles_locator = profiles_locator(consts.LOAD_DIRECTORIES)
--
2.14.4

Binary file not shown.

View File

@ -0,0 +1,91 @@
diff --git a/profiles/latency-performance/tuned.conf b/profiles/latency-performance/tuned.conf
index c780602..585c836 100644
--- a/profiles/latency-performance/tuned.conf
+++ b/profiles/latency-performance/tuned.conf
@@ -36,5 +36,18 @@ 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 aeecf53..8dcee57 100644
--- a/profiles/sap-hana/tuned.conf
+++ b/profiles/sap-hana/tuned.conf
@@ -20,3 +20,7 @@ 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 b5e266d..8fb7c04 100644
--- a/profiles/throughput-performance/tuned.conf
+++ b/profiles/throughput-performance/tuned.conf
@@ -66,6 +66,21 @@ 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
@@ -73,5 +88,12 @@ 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 5301d9f..74a5fb0 100644
--- a/profiles/virtual-host/tuned.conf
+++ b/profiles/virtual-host/tuned.conf
@@ -14,3 +14,9 @@ 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

View File

@ -0,0 +1,82 @@
diff --git a/profiles/cpu-partitioning/script.sh b/profiles/cpu-partitioning/script.sh
index ec422ca..6e004a3 100755
--- a/profiles/cpu-partitioning/script.sh
+++ b/profiles/cpu-partitioning/script.sh
@@ -2,6 +2,38 @@
. /usr/lib/tuned/functions
+no_balance_cpus_file=$STORAGE/no-balance-cpus.txt
+
+change_sd_balance_bit()
+{
+ local set_bit=$1
+ local flags_cur=
+ local file=
+ local cpu=
+
+ for cpu in $(cat $no_balance_cpus_file); do
+ for file in $(find /proc/sys/kernel/sched_domain/cpu$cpu -name flags -print); do
+ flags_cur=$(cat $file)
+ if [ $set_bit -eq 1 ]; then
+ flags_cur=$((flags_cur | 0x1))
+ else
+ flags_cur=$((flags_cur & 0xfffe))
+ fi
+ echo $flags_cur > $file
+ done
+ done
+}
+
+disable_balance_domains()
+{
+ change_sd_balance_bit 0
+}
+
+enable_balance_domains()
+{
+ change_sd_balance_bit 1
+}
+
start() {
mkdir -p "${TUNED_tmpdir}/etc/systemd"
mkdir -p "${TUNED_tmpdir}/usr/lib/dracut/hooks/pre-udev"
@@ -9,6 +41,8 @@ start() {
cp 00-tuned-pre-udev.sh "${TUNED_tmpdir}/usr/lib/dracut/hooks/pre-udev/"
setup_kvm_mod_low_latency
disable_ksm
+ echo "$TUNED_no_balance_cores_expanded" | sed 's/,/ /g' > $no_balance_cpus_file
+ disable_balance_domains
return "$?"
}
@@ -18,6 +52,7 @@ stop() {
teardown_kvm_mod_low_latency
enable_ksm
fi
+ enable_balance_domains
return "$?"
}
diff --git a/profiles/cpu-partitioning/tuned.conf b/profiles/cpu-partitioning/tuned.conf
index 11f03cf..a682c9c 100644
--- a/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}}
# Fail if isolated_cores contains CPUs which are not online
assert2=${f:assertion:isolated_cores contains online CPU(s):${isolated_cores_expanded}:${isolated_cores_online_expanded}}
-cmd_isolcpus=${f:regex_search_ternary:${no_balance_cores}:\s*[0-9]: isolcpus=${no_balance_cores}:}
-
[sysfs]
/sys/bus/workqueue/devices/writeback/cpumask = ${not_isolated_cpumask}
/sys/devices/virtual/workqueue/cpumask = ${not_isolated_cpumask}
@@ -62,4 +60,4 @@ priority=10
initrd_remove_dir=True
initrd_dst_img=tuned-initrd.img
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 nohz_full=${isolated_cores} rcu_nocbs=${isolated_cores} tuned.non_isolcpus=${not_isolated_cpumask} intel_pstate=disable nosoftlockup
--
2.43.0

BIN
tuned-2.24.1.tar.gz Normal file

Binary file not shown.

View 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

View File

@ -1,9 +1,9 @@
Summary: A system tuning service for Linux
Name: tuned
Version: 2.10.0
Release: 11
Version: 2.24.1
Release: 1
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/
BuildArch: noarch
@ -16,7 +16,7 @@ Requires(post): systemd, virt-what
Requires(preun): systemd
Requires(postun): systemd
BuildRequires: %{_py}, %{_py}-devel
BuildRequires: git, systemd, desktop-file-utils
BuildRequires: systemd, desktop-file-utils
Requires: python3-dbus, util-linux, systemtap
Requires: virt-what, gawk, dbus, ethtool
@ -26,23 +26,18 @@ Requires: %{_py}-configobj, %{_py}-pyudev, %{_py}-linux-procfs
Requires: %{_py}-schedutils, %{_py}-decorator, %{_py}-perf
Recommends:kernel-tools
Recommends:tuned-profiles-nfv-host-bin
Recommends:%{name}-help = %{version}-%{release}
Patch0: tuned-2.10.0-python-3.7-fix.patch
Patch1: 0001-tuned-adm-Fix-a-traceback-when-run-without-action-sp.patch
Patch2: tuned-2.10.0-makefile-full-python-path.patch
Patch3: 0001-tuned-gui-Sort-plugins-based-on-their-name.patch
Patch4: fix-cpu-Update-checking-if-EPB-is-supported.patch
Patch9000: bugfix-tuned-2.8.0-restart-after-kill-dbus.patch
Patch9001: 0005-realtime-virtual-host-pin-only-the-vcpu-thread-to-is.patch
Patch9002: 0029-Fix-TypeError.patch
Patch9003: 0040-Fix-pickle-provider.patch
Patch9004: 0070-plugin_disk-Fix-checking-the-removable-attribute-on-.patch
Patch9005: 0074-fix-disk-plugin-plugout-problem.patch
Patch9006: 0099-Fix-checking-for-None-values.patch
Patch9007: 0001-support-nvme-subsystem-to-be-tuned.patch
Patch0: bugfix-tuned-2.8.0-restart-after-kill-dbus.patch
#the below two patches is from
#http://ftp.iij.ad.jp/pub/linux/centos-vault/centos/8-stream/BaseOS/Source/SPackages/tuned-2.19.0-1.el8.src.rpm
#this is used to compatible with old tuned version like 2.10
Patch1: tuned-2.18.0-rhel-8-profiles.patch
Patch2: tuned-2.18.0-sd-load-balance.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 = %{version}-%{release}
Provides: tuned-utils = %{version}-%{release}
@ -137,13 +132,13 @@ Requires: tuna
Recommends: tuned-profiles-nfv-host-bin
Provides: tuned-profiles-realtime
Provides: tuned-profiles-nfv-guest
Provides: tuned-profiles-nfv-host
Provides: tuned-profiles-realtime = %{version}-%{release}
Provides: tuned-profiles-nfv-guest = %{version}-%{release}
Provides: tuned-profiles-nfv-host = %{version}-%{release}
Obsoletes: tuned-profiles-realtime
Obsoletes: tuned-profiles-nfv-guest
Obsoletes: tuned-profiles-nfv-host
Obsoletes: tuned-profiles-realtime < %{version}-%{release}
Obsoletes: tuned-profiles-nfv-guest < %{version}-%{release}
Obsoletes: tuned-profiles-nfv-host < %{version}-%{release}
%description profiles-devel
Man pages and other related documents for %{name}
@ -157,7 +152,7 @@ Man pages and other related documents for %{name}
%prep
%autosetup -n %{name}-%{version} -p1 -Sgit
%autosetup -n %{name}-%{version} -p1
%build
@ -227,10 +222,6 @@ fi
%files
%doc %{docdir}
%doc %{docdir}/README.NFV
%doc doc/README.utils
%doc doc/README.scomes
%doc COPYING
%dir %{_datadir}/%{name}
%dir %{_sysconfdir}/%{name}
%dir %{_sysconfdir}/%{name}/recommend.d
@ -242,7 +233,6 @@ fi
%{_datadir}/%{name}/grub2
%{_datadir}/polkit-1/actions/com.redhat.%{name}.policy
%{_datadir}/%{name}/ui
%{_datadir}/polkit-1/actions/com.redhat.%{name}.gui.policy
%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
%{_datadir}/applications/%{name}-gui.desktop
%{_sbindir}/%{name}
@ -253,13 +243,13 @@ fi
%{_sbindir}/diskdevstat
%{_sbindir}/scomes
%exclude %{_prefix}/lib/%{name}/realtime
%exclude %{_prefix}/lib/%{name}/realtime-virtual-guest
%exclude %{_prefix}/lib/%{name}/realtime-virtual-host
%exclude %{_prefix}/lib/%{name}/profiles/realtime
%exclude %{_prefix}/lib/%{name}/profiles/realtime-virtual-guest
%exclude %{_prefix}/lib/%{name}/profiles/realtime-virtual-host
%{_prefix}/lib/%{name}
%config(noreplace) %{_sysconfdir}/%{name}/cpu-partitioning-variables.conf
%config(noreplace) %{_sysconfdir}/%{name}/sap-hana-vmware-variables.conf
%config(noreplace) %{_sysconfdir}/%{name}/cpu-partitioning-powersave-variables.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}/profile_mode
@ -268,9 +258,8 @@ fi
%{_bindir}/powertop2%{name}
%{_libexecdir}/%{name}/defirqaffinity*
%{_libexecdir}/%{name}/pmqos-static*
%{python3_sitelib}/%{name}/gtk
%{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
%{_tmpfilesdir}/%{name}.conf
%{_unitdir}/%{name}.service
@ -293,16 +282,26 @@ fi
%files profiles-devel
%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
%{_prefix}/lib/%{name}/realtime-virtual-guest
%{_prefix}/lib/%{name}/profiles/realtime-virtual-guest
%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-nfv-guest.7*
%{_mandir}/man7/%{name}-profiles-nfv-host.7*
%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/tuned/post_loaded_profile
%{_prefix}/lib/kernel/install.d/92-tuned.install
%{_mandir}/man7/tuned-profiles-openshift.7*
%{_mandir}/man7/tuned-profiles-postgresql.7*
%{_mandir}/man7/tuned-profiles-spectrumscale-ece.7*
%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)
* Fri Aug 4 2023 hongrongxuan <hongrongxuan@huawei.com> - 2.10.0-11
- Type:other
- ID:NA