diff --git a/SOURCES/tuned-2.5.1-assignment-modifiers-strip-fix.patch b/SOURCES/tuned-2.5.1-assignment-modifiers-strip-fix.patch new file mode 100644 index 0000000..8a0f915 --- /dev/null +++ b/SOURCES/tuned-2.5.1-assignment-modifiers-strip-fix.patch @@ -0,0 +1,18 @@ +diff --git a/tuned/plugins/base.py b/tuned/plugins/base.py +--- a/tuned/plugins/base.py ++++ b/tuned/plugins/base.py +@@ -369,10 +369,12 @@ class Plugin(object): + def _process_assignment_modifiers(self, new_value, current_value): + if new_value is not None: + nws = str(new_value) ++ if len(nws) <= 1: ++ return new_value + op = nws[:1] + val = nws[1:] + if current_value is None: +- return new_value ++ return val if op in ["<", ">"] else new_value + try: + if op == ">": + if int(val) > int(current_value): + diff --git a/SOURCES/tuned-2.5.1-embedded-slashes-in-device-name-fix.patch b/SOURCES/tuned-2.5.1-embedded-slashes-in-device-name-fix.patch new file mode 100644 index 0000000..1513f65 --- /dev/null +++ b/SOURCES/tuned-2.5.1-embedded-slashes-in-device-name-fix.patch @@ -0,0 +1,39 @@ +diff --git a/tuned/plugins/plugin_disk.py b/tuned/plugins/plugin_disk.py +index 69efbf7..8de4531 100644 +--- a/tuned/plugins/plugin_disk.py ++++ b/tuned/plugins/plugin_disk.py +@@ -200,8 +200,15 @@ class DiskPlugin(hotplug.Plugin): + def _instance_unapply_dynamic(self, instance, device): + pass + ++ def _sysfs_path(self, device, suffix, prefix = "/sys/block/"): ++ if "/" in device: ++ dev = os.path.join(prefix, device.replace("/", "!"), suffix) ++ if os.path.exists(dev): ++ return dev ++ return os.path.join(prefix, device, suffix) ++ + def _elevator_file(self, device): +- return os.path.join("/sys/block/", device, "queue/scheduler") ++ return self._sysfs_path(device, "queue/scheduler") + + @command_set("elevator", per_device=True) + def _set_elevator(self, value, device, sim): +@@ -296,7 +303,7 @@ class DiskPlugin(hotplug.Plugin): + return 253 + + def _readahead_file(self, device): +- return os.path.join("/sys/block/", device, "queue/read_ahead_kb") ++ return self._sysfs_path(device, "queue/read_ahead_kb") + + def _parse_ra(self, value): + val = str(value).split(None, 1) +@@ -342,7 +349,7 @@ class DiskPlugin(hotplug.Plugin): + self._storage.unset(storage_key) + + def _scheduler_quantum_file(self, device): +- return os.path.join("/sys/block/", device, "queue/iosched/quantum") ++ return self._sysfs_path(device, "queue/iosched/quantum") + + @command_set("scheduler_quantum", per_device=True) + def _set_scheduler_quantum(self, value, device, sim): diff --git a/SOURCES/tuned-2.5.1-realtime-sched_rt_runtime_us-fix.patch b/SOURCES/tuned-2.5.1-realtime-sched_rt_runtime_us-fix.patch new file mode 100644 index 0000000..533f7d9 --- /dev/null +++ b/SOURCES/tuned-2.5.1-realtime-sched_rt_runtime_us-fix.patch @@ -0,0 +1,13 @@ +diff --git a/profiles/realtime/tuned.conf b/profiles/realtime/tuned.conf +index 301ec5f..c184561 100644 +--- a/profiles/realtime/tuned.conf ++++ b/profiles/realtime/tuned.conf +@@ -15,7 +15,7 @@ not_isolated_cpumask = ${f:cpulist2hex_invert:${isolated_cores}} + [sysctl] + kernel.hung_task_timeout_secs = 600 + kernel.nmi_watchdog = 0 +-kernel.sched_rt_runtime_us = 1000000 ++kernel.sched_rt_runtime_us = -1 + vm.stat_interval = 10 + kernel.timer_migration = 0 + diff --git a/SOURCES/tuned-2.5.1-realtime-timer-migration.patch b/SOURCES/tuned-2.5.1-realtime-timer-migration.patch new file mode 100644 index 0000000..665f14e --- /dev/null +++ b/SOURCES/tuned-2.5.1-realtime-timer-migration.patch @@ -0,0 +1,12 @@ +diff --git a/profiles/realtime/tuned.conf b/profiles/realtime/tuned.conf +index 4273ad2..301ec5f 100644 +--- a/profiles/realtime/tuned.conf ++++ b/profiles/realtime/tuned.conf +@@ -17,6 +17,7 @@ kernel.hung_task_timeout_secs = 600 + kernel.nmi_watchdog = 0 + kernel.sched_rt_runtime_us = 1000000 + vm.stat_interval = 10 ++kernel.timer_migration = 0 + + [sysfs] + /sys/bus/workqueue/devices/writeback/cpumask = ${not_isolated_cpumask} diff --git a/SOURCES/tuned-2.5.1-realtime-virtual-add-rcu_nocbs.patch b/SOURCES/tuned-2.5.1-realtime-virtual-add-rcu_nocbs.patch new file mode 100644 index 0000000..2cf1e6d --- /dev/null +++ b/SOURCES/tuned-2.5.1-realtime-virtual-add-rcu_nocbs.patch @@ -0,0 +1,20 @@ +diff --git a/profiles/realtime-virtual-guest/tuned.conf b/profiles/realtime-virtual-guest/tuned.conf +index eaaf4ab..0c3b2df 100644 +--- a/profiles/realtime-virtual-guest/tuned.conf ++++ b/profiles/realtime-virtual-guest/tuned.conf +@@ -14,4 +14,4 @@ isolated_cores_expanded=${f:cpulist_unpack:${isolated_cores}} + script=script.sh + + [bootloader] +-cmdline=isolcpus=${isolated_cores} nohz=on nohz_full=${isolated_cores} intel_pstate=disable nosoftlockup ++cmdline=isolcpus=${isolated_cores} nohz=on nohz_full=${isolated_cores} rcu_nocbs=${isolated_cores} intel_pstate=disable nosoftlockup +diff --git a/profiles/realtime-virtual-host/tuned.conf b/profiles/realtime-virtual-host/tuned.conf +index 51c182e..b23f832 100644 +--- a/profiles/realtime-virtual-host/tuned.conf ++++ b/profiles/realtime-virtual-host/tuned.conf +@@ -42,4 +42,4 @@ group.rcub=0:f:3:*:rcub.* + script=script.sh + + [bootloader] +-cmdline=isolcpus=${isolated_cores} nohz=on nohz_full=${isolated_cores} intel_pstate=disable nosoftlockup ++cmdline=isolcpus=${isolated_cores} nohz=on nohz_full=${isolated_cores} rcu_nocbs=${isolated_cores} intel_pstate=disable nosoftlockup diff --git a/SPECS/tuned.spec b/SPECS/tuned.spec index 5b4ed8b..269b9cf 100644 --- a/SPECS/tuned.spec +++ b/SPECS/tuned.spec @@ -1,7 +1,7 @@ Summary: A dynamic adaptive system tuning daemon Name: tuned Version: 2.5.1 -Release: 4%{?dist}.3 +Release: 4%{?dist}.6 License: GPLv2+ Source: https://fedorahosted.org/releases/t/u/tuned/tuned-%{version}.tar.bz2 URL: https://fedorahosted.org/tuned/ @@ -30,6 +30,16 @@ Patch6: tuned-2.5.1-realtime-remove-nohz-full.patch Patch7: tuned-2.5.1-realtime-virtual-host-modprobe-race-fix.patch # rhbz#1305903 Patch8: tuned-2.5.1-restart-attempt-fix.patch +# rhbz#1353142 +Patch9: tuned-2.5.1-assignment-modifiers-strip-fix.patch +# rhbz#1353142 +Patch10: tuned-2.5.1-embedded-slashes-in-device-name-fix.patch +# rhbz#1360800 +Patch11: tuned-2.5.1-realtime-timer-migration.patch +# rhbz#1367502 +Patch12: tuned-2.5.1-realtime-virtual-add-rcu_nocbs.patch +# rhbz#1372190 +Patch13: tuned-2.5.1-realtime-sched_rt_runtime_us-fix.patch %description The tuned package contains a daemon that tunes system settings dynamically. @@ -138,6 +148,11 @@ It can be also used to fine tune your system for specific scenarios. %patch6 -p1 %patch7 -p1 %patch8 -p1 +%patch9 -p1 +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 +%patch13 -p1 %build @@ -325,6 +340,24 @@ fi %{_mandir}/man7/tuned-profiles-compat.7* %changelog +* Thu Sep 1 2016 Jaroslav Škarvada - 2.5.1-4.6 +- realtime: fixed kernel.sched_rt_runtime_us to be -1 + resolves: rhbz#1372190 + +* Fri Aug 19 2016 Jaroslav Škarvada - 2.5.1-4.5 +- realtime: disabled timer migration + resolves: rhbz#1360800 +- realtime-virtual-host/guest: added rcu_nocbs kernel boot parameter + resolves: rhbz#1334479 + +* Wed Aug 3 2016 Jaroslav Škarvada - 2.5.1-4.4 +- fixed traceback by always stripping assignment modifiers even if not used + (by assignment-modifiers-strip-fix patch) + resolves: rhbz#1363682 +- added workaround for embedded slashes in device names + (by embedded-slashes-in-device-name-fix patch) + related: rhbz#1363682 + * Tue Feb 9 2016 Jaroslav Škarvada - 2.5.1-4.3 - fixed traceback during restart attempt resolves: rhbz#1305903