diff --git a/bugfix-check_positive-has-some-contradictions.patch b/bugfix-check_positive-has-some-contradictions.patch new file mode 100644 index 0000000000000000000000000000000000000000..e19ad470eeb093304261513a71f35ed913a2d815 --- /dev/null +++ b/bugfix-check_positive-has-some-contradictions.patch @@ -0,0 +1,25 @@ +From d55d5c280758b6fed2c8c598a380c3c6cdc11b18 Mon Sep 17 00:00:00 2001 +From: dufuhang +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 + diff --git a/bugfix-expand-variables-in-Plugin.patch b/bugfix-expand-variables-in-Plugin.patch new file mode 100644 index 0000000000000000000000000000000000000000..74d6766b616bb888acdcf4a8d45f32e8d7f589bd --- /dev/null +++ b/bugfix-expand-variables-in-Plugin.patch @@ -0,0 +1,25 @@ +From 48a01d08ea325354c37b8f68c02c28fa424ddff6 Mon Sep 17 00:00:00 2001 +From: Adriaan Schmidt +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 + diff --git a/profiles-drop-sched_-tuning-where-appropriate.patch b/profiles-drop-sched_-tuning-where-appropriate.patch new file mode 100644 index 0000000000000000000000000000000000000000..90798666e84226f40edee84c225ccd3399c7d0d7 --- /dev/null +++ b/profiles-drop-sched_-tuning-where-appropriate.patch @@ -0,0 +1,113 @@ +From c6d6fdcc4c944df9998e0ebe75f31cc8aed452c1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= +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 + +--- + 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 + diff --git a/tuned-2.18.0-rhel-8-profiles.patch b/tuned-2.18.0-rhel-8-profiles.patch index d1d575055acb0f36fcb4d5c2ff64cfcd7c02b3b9..58776b6a8a07ed0ed8c41afa019b88dbface77bb 100644 --- a/tuned-2.18.0-rhel-8-profiles.patch +++ b/tuned-2.18.0-rhel-8-profiles.patch @@ -1,12 +1,11 @@ diff --git a/profiles/latency-performance/tuned.conf b/profiles/latency-performance/tuned.conf -index d200b5c..877229f 100644 +index c780602..585c836 100644 --- a/profiles/latency-performance/tuned.conf +++ b/profiles/latency-performance/tuned.conf -@@ -32,3 +32,16 @@ vm.dirty_background_ratio=3 - # 100 tells the kernel to aggressively swap processes out of physical memory +@@ -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 +# @@ -19,6 +18,9 @@ index d200b5c..877229f 100644 +# "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 @@ -32,12 +34,12 @@ index aeecf53..8dcee57 100644 +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 98c6b26..ebb3f7d 100644 +index b5e266d..8fb7c04 100644 --- a/profiles/throughput-performance/tuned.conf +++ b/profiles/throughput-performance/tuned.conf -@@ -58,9 +58,31 @@ vm.dirty_background_ratio = 10 - # and move them to swap cache - vm.swappiness=10 +@@ -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 @@ -57,16 +59,19 @@ index 98c6b26..ebb3f7d 100644 # Marvell ThunderX [sysctl.thunderx] type=sysctl - uname_regex=aarch64 +@@ -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 @@ -81,3 +86,6 @@ index 5301d9f..74a5fb0 100644 +# "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 + diff --git a/tuned-2.18.0-sd-load-balance.patch b/tuned-2.18.0-sd-load-balance.patch index d42600c27822a33e14651c4d9adeb87fd291c4ad..099afed0e4be95ea0885312c92915741e7a6f19b 100644 --- a/tuned-2.18.0-sd-load-balance.patch +++ b/tuned-2.18.0-sd-load-balance.patch @@ -1,5 +1,5 @@ diff --git a/profiles/cpu-partitioning/script.sh b/profiles/cpu-partitioning/script.sh -index 84e04fd..8677050 100755 +index ec422ca..6e004a3 100755 --- a/profiles/cpu-partitioning/script.sh +++ b/profiles/cpu-partitioning/script.sh @@ -2,6 +2,38 @@ @@ -41,17 +41,16 @@ index 84e04fd..8677050 100755 start() { mkdir -p "${TUNED_tmpdir}/etc/systemd" mkdir -p "${TUNED_tmpdir}/usr/lib/dracut/hooks/pre-udev" -@@ -9,6 +41,9 @@ start() { +@@ -9,6 +41,8 @@ start() { cp 00-tuned-pre-udev.sh "${TUNED_tmpdir}/usr/lib/dracut/hooks/pre-udev/" 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 +53,7 @@ stop() { +@@ -18,6 +52,7 @@ stop() { teardown_kvm_mod_low_latency enable_ksm fi @@ -60,7 +59,7 @@ index 84e04fd..8677050 100755 } diff --git a/profiles/cpu-partitioning/tuned.conf b/profiles/cpu-partitioning/tuned.conf -index 979e40b..842e2bd 100644 +index 11f03cf..a682c9c 100644 --- a/profiles/cpu-partitioning/tuned.conf +++ b/profiles/cpu-partitioning/tuned.conf @@ -35,8 +35,6 @@ no_balance_cores_expanded=${f:cpulist_unpack:${no_balance_cores}} @@ -69,12 +68,15 @@ index 979e40b..842e2bd 100644 -cmd_isolcpus=${f:regex_search_ternary:${no_balance_cores}:\s*[0-9]: isolcpus=${no_balance_cores}:} - - [sysctl] - kernel.hung_task_timeout_secs = 600 - kernel.nmi_watchdog = 0 -@@ -68,4 +66,4 @@ priority=10 + [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 + diff --git a/tuned-2.19.0.tar.gz b/tuned-2.19.0.tar.gz deleted file mode 100644 index c57313d82df5820e7d8fdab0ee9dd4c1758437bd..0000000000000000000000000000000000000000 Binary files a/tuned-2.19.0.tar.gz and /dev/null differ diff --git a/tuned-2.24.1.tar.gz b/tuned-2.24.1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..3acda32f20741185fcbf4041ceabbefde33a05aa Binary files /dev/null and b/tuned-2.24.1.tar.gz differ diff --git a/tuned-add-app-sensor-profile.patch b/tuned-add-app-sensor-profile.patch new file mode 100644 index 0000000000000000000000000000000000000000..90113c9eb9ebea8b7696193d92332aad459d6893 --- /dev/null +++ b/tuned-add-app-sensor-profile.patch @@ -0,0 +1,232 @@ +From e8fb537645141bc87425b481e48f8484f05725b8 Mon Sep 17 00:00:00 2001 +From: hubin +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 +--- + 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 + diff --git a/tuned.spec b/tuned.spec index 8f521ad0c6b6e225e40bf2ede70f01c36325bbff..9775fc3d298940a1fa4b91a53a5cd53ac870e878 100644 --- a/tuned.spec +++ b/tuned.spec @@ -1,9 +1,9 @@ Summary: A system tuning service for Linux Name: tuned -Version: 2.19.0 -Release: 3 +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 @@ -34,30 +34,34 @@ Patch0: bugfix-tuned-2.8.0-restart-after-kill-dbus.patch 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 - -Provides: tuned-gtk -Provides: tuned-utils -Provides: tuned-profiles-sap -Provides: tuned-profiles-mssql -Provides: tuned-profiles-oracle -Provides: tuned-profiles-sap-hana -Provides: tuned-profiles-atomic -Provides: tuned-profiles-nfv -Provides: tuned-profiles-cpu-partitioning -Provides: tuned-profiles-compat -Provides: tuned-utils-systemtap - -Obsoletes: tuned-gtk -Obsoletes: tuned-utils -Obsoletes: tuned-profiles-sap -Obsoletes: tuned-profiles-mssql -Obsoletes: tuned-profiles-oracle -Obsoletes: tuned-profiles-sap-hana -Obsoletes: tuned-profiles-atomic -Obsoletes: tuned-profiles-nfv -Obsoletes: tuned-profiles-cpu-partitioning -Obsoletes: tuned-profiles-compat -Obsoletes: tuned-utils-systemtap +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} +Provides: tuned-profiles-sap = %{version}-%{release} +Provides: tuned-profiles-mssql = %{version}-%{release} +Provides: tuned-profiles-oracle = %{version}-%{release} +Provides: tuned-profiles-sap-hana = %{version}-%{release} +Provides: tuned-profiles-atomic = %{version}-%{release} +Provides: tuned-profiles-nfv = %{version}-%{release} +Provides: tuned-profiles-cpu-partitioning = %{version}-%{release} +Provides: tuned-profiles-compat = %{version}-%{release} +Provides: tuned-utils-systemtap = %{version}-%{release} + +Obsoletes: tuned-gtk < %{version}-%{release} +Obsoletes: tuned-utils < %{version}-%{release} +Obsoletes: tuned-profiles-sap < %{version}-%{release} +Obsoletes: tuned-profiles-mssql < %{version}-%{release} +Obsoletes: tuned-profiles-oracle < %{version}-%{release} +Obsoletes: tuned-profiles-sap-hana < %{version}-%{release} +Obsoletes: tuned-profiles-atomic < %{version}-%{release} +Obsoletes: tuned-profiles-nfv < %{version}-%{release} +Obsoletes: tuned-profiles-cpu-partitioning < %{version}-%{release} +Obsoletes: tuned-profiles-compat < %{version}-%{release} +Obsoletes: tuned-utils-systemtap < %{version}-%{release} %description Tuned is a daemon that uses udev to monitor connected devices and @@ -128,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} @@ -218,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 @@ -243,12 +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}/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 @@ -257,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 @@ -282,11 +282,11 @@ 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* @@ -297,6 +297,11 @@ fi %{_mandir}/man7/tuned-profiles-spectrumscale-ece.7* %changelog +* Mon Dec 2 2024 Liu Chao - 2.24.1-1 +- Upgrade to 2.24.1: + - fixed privileged execution of arbitrary scripts by active local user. (CVE-2024-52336) + - added sanity checks for API methods parameters. (CVE-2024-52337) + * Mon Dec 26 2022 hongrongxuan - 2.19.0-3 - change the default percentage when dirty data starts writeback @@ -309,10 +314,10 @@ fi * Fri Jul 30 2021 chenyanpanHW - 2.10.0-10 - DESC: delete -Sgit from %autosetup, and delete BuildRequires git -* Fri Mar 05 2020 xinghe - 2.10.0-9 +* Fri Mar 05 2021 xinghe - 2.10.0-9 - powertop2tuned work with PowerTOP 2.13 and newer -* Fri Sep 18 2021 xinghe - 2.10.0-8 +* Fri Sep 18 2020 xinghe - 2.10.0-8 - cpu Update checking if EPB is supported * Sun Sep 7 2019 hejingxian - 2.10.0-7