Upgrade to 2.24.1
Signed-off-by: SuperSix173 <liuchao173@huawei.com>
This commit is contained in:
parent
1440a8f31f
commit
352eafca0b
@ -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
|
|
||||||
|
|
||||||
@ -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
|
|
||||||
|
|
||||||
@ -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
|
|
||||||
|
|
||||||
@ -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
|
|
||||||
|
|
||||||
@ -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
|
|
||||||
|
|
||||||
@ -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
|
|
||||||
|
|
||||||
@ -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
|
|
||||||
|
|
||||||
@ -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
|
|
||||||
|
|
||||||
@ -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
|
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
26
change-the-default-percentage-when-dirty-data-starts.patch
Normal file
26
change-the-default-percentage-when-dirty-data-starts.patch
Normal 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
|
||||||
|
|
||||||
@ -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
|
|
||||||
|
|
||||||
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,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)
|
|
||||||
|
|
||||||
@ -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.
91
tuned-2.18.0-rhel-8-profiles.patch
Normal file
91
tuned-2.18.0-rhel-8-profiles.patch
Normal 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
|
||||||
|
|
||||||
82
tuned-2.18.0-sd-load-balance.patch
Normal file
82
tuned-2.18.0-sd-load-balance.patch
Normal 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
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
|
||||||
|
|
||||||
81
tuned.spec
81
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.10.0
|
Version: 2.24.1
|
||||||
Release: 11
|
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
|
||||||
@ -16,7 +16,7 @@ Requires(post): systemd, virt-what
|
|||||||
Requires(preun): systemd
|
Requires(preun): systemd
|
||||||
Requires(postun): systemd
|
Requires(postun): systemd
|
||||||
BuildRequires: %{_py}, %{_py}-devel
|
BuildRequires: %{_py}, %{_py}-devel
|
||||||
BuildRequires: git, systemd, desktop-file-utils
|
BuildRequires: systemd, desktop-file-utils
|
||||||
|
|
||||||
Requires: python3-dbus, util-linux, systemtap
|
Requires: python3-dbus, util-linux, systemtap
|
||||||
Requires: virt-what, gawk, dbus, ethtool
|
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
|
Requires: %{_py}-schedutils, %{_py}-decorator, %{_py}-perf
|
||||||
Recommends:kernel-tools
|
Recommends:kernel-tools
|
||||||
Recommends:tuned-profiles-nfv-host-bin
|
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-gtk = %{version}-%{release}
|
||||||
Provides: tuned-utils = %{version}-%{release}
|
Provides: tuned-utils = %{version}-%{release}
|
||||||
@ -137,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}
|
||||||
@ -157,7 +152,7 @@ Man pages and other related documents for %{name}
|
|||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -n %{name}-%{version} -p1 -Sgit
|
%autosetup -n %{name}-%{version} -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
@ -227,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
|
||||||
@ -242,7 +233,6 @@ fi
|
|||||||
%{_datadir}/%{name}/grub2
|
%{_datadir}/%{name}/grub2
|
||||||
%{_datadir}/polkit-1/actions/com.redhat.%{name}.policy
|
%{_datadir}/polkit-1/actions/com.redhat.%{name}.policy
|
||||||
%{_datadir}/%{name}/ui
|
%{_datadir}/%{name}/ui
|
||||||
%{_datadir}/polkit-1/actions/com.redhat.%{name}.gui.policy
|
|
||||||
%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
|
%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
|
||||||
%{_datadir}/applications/%{name}-gui.desktop
|
%{_datadir}/applications/%{name}-gui.desktop
|
||||||
%{_sbindir}/%{name}
|
%{_sbindir}/%{name}
|
||||||
@ -253,13 +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}/sap-hana-vmware-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
|
||||||
@ -268,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
|
||||||
@ -293,16 +282,26 @@ 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*
|
||||||
|
%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
|
%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
|
* Fri Aug 4 2023 hongrongxuan <hongrongxuan@huawei.com> - 2.10.0-11
|
||||||
- Type:other
|
- Type:other
|
||||||
- ID:NA
|
- ID:NA
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user