From 36bb880cd728fc58535d49499d33936cc002d8b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= Date: Sat, 8 Aug 2026 02:53:45 +0200 Subject: [PATCH] new release rebased tuned to latest upstream resolves: RHEL-210923 scheduler: check for EPERM when setting IRQ affinity bootloader: set correct permission for tempdir resolves: RHEL-121198 commands: better error msgs when creating directory and hardened dir mode docs: build reference guide systemd: used drop-ins for configuration systemd: do not backup the drop-in configuration net: add more coalescing options, filter out unsupported ones cpu: do not log error if boost isn't supported bootloader: add bootc loader-entries set-options-for-source support cpu: fixed TypeError when load_threshold is set in a profil openshift: include network-throughput profile drop support for vm.laptop_mode which is deprecated in kernel 7.0 net: fixed ring parser to work with rx-mini and rx-jumbo resolves: RHEL-168025 lscpu_check: do not traceback on invalid regex resolves: RHEL-132575 network-latency: increase AVC cache to 8192 functions: use iw for Wi-Fi power saving --- sources | 2 +- tuned-2.25.0-revert-profile-migration.patch | 187 -------------------- tuned-2.27.0-net-coalescing-fix.patch | 73 -------- tuned-2.27.0-openshift-revert.patch | 29 --- tuned-2.28.0-openshift-revert.patch | 28 +++ tuned-2.28.0-revert-profile-migration.patch | 80 +++++++++ tuned-2.28.0-vm-laptop-mode-revert.patch | 37 ++++ tuned.spec | 44 ++++- 8 files changed, 182 insertions(+), 298 deletions(-) delete mode 100644 tuned-2.25.0-revert-profile-migration.patch delete mode 100644 tuned-2.27.0-net-coalescing-fix.patch delete mode 100644 tuned-2.27.0-openshift-revert.patch create mode 100644 tuned-2.28.0-openshift-revert.patch create mode 100644 tuned-2.28.0-revert-profile-migration.patch create mode 100644 tuned-2.28.0-vm-laptop-mode-revert.patch diff --git a/sources b/sources index f515150..1557366 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (tuned-2.27.0.tar.gz) = 7471d073879a688da66e72c4f5c562d1a732d6bfb562d8c033874a8edbad2bab3cf3c7dc387270bf99ae6b1b35ffc451173122e32023116709567e529e09dc52 +SHA512 (tuned-2.28.0-rc.1.tar.gz) = 9c2d1685464440d10d4765f1f8cc6949255e4f876ea3e5b8315900f3bb71328b78c3eb13ea9b150801d495cddc1f47f9a47eab689081cb5230c31f8172ec6027 diff --git a/tuned-2.25.0-revert-profile-migration.patch b/tuned-2.25.0-revert-profile-migration.patch deleted file mode 100644 index bfe769d..0000000 --- a/tuned-2.25.0-revert-profile-migration.patch +++ /dev/null @@ -1,187 +0,0 @@ -diff --git a/doc/manual/modules/performance/con_inheritance-between-tuned-profiles.adoc b/doc/manual/modules/performance/con_inheritance-between-tuned-profiles.adoc -index f5ff98a..2662c29 100644 ---- a/doc/manual/modules/performance/con_inheritance-between-tuned-profiles.adoc -+++ b/doc/manual/modules/performance/con_inheritance-between-tuned-profiles.adoc -@@ -15,7 +15,7 @@ include=[replaceable]_parent_ - - All settings from the [replaceable]_parent_ profile are loaded in this _child_ profile. In the following sections, the _child_ profile can override certain settings inherited from the [replaceable]_parent_ profile or add new settings not present in the [replaceable]_parent_ profile. - --You can create your own _child_ profile in the [filename]`/etc/tuned/profiles/` directory based on a pre-installed profile in [filename]`/usr/lib/tuned/profiles/` with only some parameters adjusted. -+You can create your own _child_ profile in the [filename]`/etc/tuned/` directory based on a pre-installed profile in [filename]`/usr/lib/tuned/` with only some parameters adjusted. - - If the [replaceable]_parent_ profile is updated, such as after a *TuneD* upgrade, the changes are reflected in the _child_ profile. - -diff --git a/doc/manual/modules/performance/con_the-location-of-tuned-profiles.adoc b/doc/manual/modules/performance/con_the-location-of-tuned-profiles.adoc -index 4cd35b3..678ff6a 100644 ---- a/doc/manual/modules/performance/con_the-location-of-tuned-profiles.adoc -+++ b/doc/manual/modules/performance/con_the-location-of-tuned-profiles.adoc -@@ -5,17 +5,17 @@ - [role="_abstract"] - *TuneD* stores profiles in the following directories: - --[filename]`/usr/lib/tuned/profiles/`:: --Distribution-specific profiles are stored in the [filename]`/usr/lib/tuned/profiles/` directory. Each profile has its own directory. The profile consists of the main configuration file called `tuned.conf`, and optionally other files, for example helper scripts. -+[filename]`/usr/lib/tuned/`:: -+Distribution-specific profiles are stored in the [filename]`/usr/lib/tuned/` directory. Each profile has its own directory. The profile consists of the main configuration file called `tuned.conf`, and optionally other files, for example helper scripts. - --[filename]`/etc/tuned/profiles/`:: --If you need to customize a profile, copy the profile directory into the [filename]`/etc/tuned/profiles/` directory, which is used for custom profiles, and then adjust it. If there is a system profile and a custom profile of the same name, the custom profile located in [filename]`/etc/tuned/profiles` is used. -+[filename]`/etc/tuned/`:: -+If you need to customize a profile, copy the profile directory into the [filename]`/etc/tuned/` directory, which is used for custom profiles, and then adjust it. If there is a system profile and a custom profile of the same name, the custom profile located in [filename]`/etc/tuned/` is used. - - .User-defined profile directories - ==== --If you want to make TuneD load profiles from a directory other than [filename]`/usr/lib/tuned/profiles/` and [filename]`/etc/tuned/profiles/`, you can list it in [filename]`/etc/tuned/tuned-main.conf` as follows: -+If you want to make TuneD load profiles from a directory other than [filename]`/usr/lib/tuned/` and [filename]`/etc/tuned/`, you can list it in [filename]`/etc/tuned/tuned-main.conf` as follows: - ---- --profile_dirs=/usr/lib/tuned/profiles,/etc/tuned/profiles,/my/custom/profiles -+profile_dirs=/usr/lib/tuned,/etc/tuned,/my/custom/profiles - ---- - In this example, profiles are loaded also from [filename]`/my/custom/profiles/`. If two directories contain profiles with the same names, the one that is listed later takes precedence. - ==== -diff --git a/doc/manual/modules/performance/proc_creating-new-tuned-profiles.adoc b/doc/manual/modules/performance/proc_creating-new-tuned-profiles.adoc -index 7f7c75f..5c83a4c 100644 ---- a/doc/manual/modules/performance/proc_creating-new-tuned-profiles.adoc -+++ b/doc/manual/modules/performance/proc_creating-new-tuned-profiles.adoc -@@ -17,11 +17,11 @@ endif::[] - - .Procedure - --. In the [filename]`/etc/tuned/profiles/` directory, create a new directory named the same as the profile that you want to create: -+. In the [filename]`/etc/tuned/` directory, create a new directory named the same as the profile that you want to create: - + - [subs="quotes"] - ---- --# mkdir /etc/tuned/profiles/[replaceable]_my-profile_ -+# mkdir /etc/tuned/[replaceable]_my-profile_ - ---- - - . In the new directory, create a file named [filename]`tuned.conf`. Add a `[main]` section and plug-in definitions in it, according to your requirements. -diff --git a/doc/manual/modules/performance/proc_modifying-existing-tuned-profiles.adoc b/doc/manual/modules/performance/proc_modifying-existing-tuned-profiles.adoc -index 8134030..9ed5d0b 100644 ---- a/doc/manual/modules/performance/proc_modifying-existing-tuned-profiles.adoc -+++ b/doc/manual/modules/performance/proc_modifying-existing-tuned-profiles.adoc -@@ -17,11 +17,11 @@ endif::[] - - .Procedure - --. In the [filename]`/etc/tuned/profiles/` directory, create a new directory named the same as the profile that you want to create: -+. In the [filename]`/etc/tuned/` directory, create a new directory named the same as the profile that you want to create: - + - [subs="quotes"] - ---- --# mkdir /etc/tuned/profiles/[replaceable]_modified-profile_ -+# mkdir /etc/tuned/[replaceable]_modified-profile_ - ---- - - . In the new directory, create a file named [filename]`tuned.conf`, and set the `[main]` section as follows: -@@ -75,13 +75,13 @@ See TuneD log file ('/var/log/tuned/tuned.log') for details. - ---- - - // .An alternative approach --// . Alternatively, copy the directory with a system profile from /usr/lib/tuned/profiles/ to /etc/tuned/profiles/. For example: -+// . Alternatively, copy the directory with a system profile from /user/lib/tuned/ to /etc/tuned/. For example: - // + - // ---- --// # cp -r /usr/lib/tuned/profiles/throughput-performance /etc/tuned/profiles -+// # cp -r /usr/lib/tuned/throughput-performance /etc/tuned - // ---- - // --// . Then, edit the profile in /etc/tuned/profiles/ according to your needs. Note that if there are two profiles of the same name, the profile located in /etc/tuned/profiles/ is loaded. The disadvantage of this approach is that if a system profile is updated after a TuneD upgrade, the changes will not be reflected in the now-outdated modified version. -+// . Then, edit the profile in /etc/tuned according to your needs. Note that if there are two profiles of the same name, the profile located in /etc/tuned/ is loaded. The disadvantage of this approach is that if a system profile is updated after a TuneD upgrade, the changes will not be reflected in the now-outdated modified version. - - [role="_additional-resources"] - .Additional resources -diff --git a/doc/manual/modules/performance/proc_setting-the-disk-scheduler-using-tuned.adoc b/doc/manual/modules/performance/proc_setting-the-disk-scheduler-using-tuned.adoc -index c4c5a3c..d66f261 100644 ---- a/doc/manual/modules/performance/proc_setting-the-disk-scheduler-using-tuned.adoc -+++ b/doc/manual/modules/performance/proc_setting-the-disk-scheduler-using-tuned.adoc -@@ -58,7 +58,7 @@ $ tuned-adm active - + - [subs="quotes"] - ---- --# mkdir /etc/tuned/profiles/[replaceable]__my-profile__ -+# mkdir /etc/tuned/[replaceable]__my-profile__ - ---- - - . Find the system unique identifier of the selected block device: -@@ -77,7 +77,7 @@ ID_SERIAL_SHORT=_20120501030900000_ - The command in the this example will return all values identified as a World Wide Name (WWN) or serial number associated with the specified block device. Although it is preferred to use a WWN, the WWN is not always available for a given device and any values returned by the example command are acceptable to use as the _device system unique ID_. - ==== - --. Create the `/etc/tuned/profiles/[replaceable]_my-profile_/tuned.conf` configuration file. In the file, set the following options: -+. Create the `/etc/tuned/_my-profile_/tuned.conf` configuration file. In the file, set the following options: - - .. Optional: Include an existing profile: - + -diff --git a/man/tuned-adm.8 b/man/tuned-adm.8 -index 972f8b6..f29966d 100644 ---- a/man/tuned-adm.8 -+++ b/man/tuned-adm.8 -@@ -31,8 +31,8 @@ This command line utility allows you to switch between user definable tuning - profiles. Several predefined profiles are already included. You can even - create your own profile, either based on one of the existing ones by copying - it or make a completely new one. The distribution provided profiles are stored --in subdirectories below \fI/usr/lib/tuned/profiles/\fP and the user defined profiles in --subdirectories below \fI/etc/tuned/profiles/\fP. If there are profiles with the same name -+in subdirectories below \fI/usr/lib/tuned\fP and the user defined profiles in -+subdirectories below \fI/etc/tuned\fP. If there are profiles with the same name - in both places, user defined profiles have precedence. - - .SH "OPTIONS" -diff --git a/man/tuned-profiles.7 b/man/tuned-profiles.7 -index 1fc8b6b..6bd98a5 100644 ---- a/man/tuned-profiles.7 -+++ b/man/tuned-profiles.7 -@@ -30,9 +30,9 @@ performance optimizations but there are also profiles targeted to - low power consumption, low latency and others. You can mostly deduce the - purpose of the profile by its name or you can see full description below. - --The profiles are stored in subdirectories below \fI/usr/lib/tuned/profiles/\fP. If you --need to customize the profiles, you can copy them to \fI/etc/tuned/profiles/\fP and modify --them as you need. When loading profiles with the same name, \fI/etc/tuned/profiles/\fP takes -+The profiles are stored in subdirectories below \fI/usr/lib/tuned\fP. If you -+need to customize the profiles, you can copy them to \fI/etc/tuned\fP and modify -+them as you need. When loading profiles with the same name, the /etc/tuned takes - precedence. In such case you will not lose your customized profiles between - TuneD updates. - -@@ -150,8 +150,8 @@ throughput\-performance profile. - - .SH "FILES" - .nf --.I /etc/tuned/profiles/* --.I /usr/lib/tuned/profiles/* -+.I /etc/tuned/* -+.I /usr/lib/tuned/* - - .SH "SEE ALSO" - .BR tuned (8) -diff --git a/man/tuned.conf.5 b/man/tuned.conf.5 -index c319130..464b6be 100644 ---- a/man/tuned.conf.5 -+++ b/man/tuned.conf.5 -@@ -3,8 +3,8 @@ - tuned.conf - TuneD profile definition - .SH DESCRIPTION - This man page documents format of TuneD 2.0 profile definition files. --The profile definition is stored in /etc/tuned/profiles//tuned.conf or in --/usr/lib/tuned/profiles//tuned.conf file where the /etc/tuned/profiles/ directory has -+The profile definition is stored in /etc/tuned//tuned.conf or in -+/usr/lib/tuned//tuned.conf file where the /etc/tuned/ directory has - higher priority. - - The \fBtuned.conf\fR configures the profile and it is in ini-file format. -diff --git a/tuned-adm.bash b/tuned-adm.bash -index 18c716b..a4e6075 100644 ---- a/tuned-adm.bash -+++ b/tuned-adm.bash -@@ -9,7 +9,7 @@ _tuned_adm() - if [[ "$cword" -eq 1 ]]; then - COMPREPLY=( $(compgen -W "$commands" -- "$cur" ) ) - elif [[ "$cword" -eq 2 && ("$prev" == "profile" || "$prev" == "profile_info") ]]; then -- COMPREPLY=( $(compgen -W "$(command find /usr/lib/tuned/profiles /etc/tuned/profiles -mindepth 1 -maxdepth 1 -type d -printf "%f\n")" -- "$cur" ) ) -+ COMPREPLY=( $(compgen -W "$(command find /usr/lib/tuned /etc/tuned -mindepth 1 -maxdepth 1 -type d -printf "%f\n")" -- "$cur" ) ) - else - COMPREPLY=() - fi diff --git a/tuned-2.27.0-net-coalescing-fix.patch b/tuned-2.27.0-net-coalescing-fix.patch deleted file mode 100644 index c263b2c..0000000 --- a/tuned-2.27.0-net-coalescing-fix.patch +++ /dev/null @@ -1,73 +0,0 @@ -From f5cfd2a72263ebf1c868fa75afd6d6e085e10e50 Mon Sep 17 00:00:00 2001 -From: Fothsid <18036123+Fothsid@users.noreply.github.com> -Date: Wed, 22 Apr 2026 16:01:23 +0200 -Subject: [PATCH] net: add more coalescing options, filter out unsupported ones - -Ethtool's tx-aggr-* parameters were not known to tuned. - -In addition to adding those, checking logic is changed to -filter out unknown parameters supported by ethtool instead -of simply failing to set any options. - -Resolves: RHEL-152675 ---- - tuned/plugins/plugin_net.py | 20 +++++++++----------- - 1 file changed, 9 insertions(+), 11 deletions(-) - -diff --git a/tuned/plugins/plugin_net.py b/tuned/plugins/plugin_net.py -index 6d291b291..31b30f5df 100644 ---- a/tuned/plugins/plugin_net.py -+++ b/tuned/plugins/plugin_net.py -@@ -332,7 +332,10 @@ def _get_config_options_coalesce(cls): - "rx-frames-high": None, - "tx-usecs-high": None, - "tx-frames-high": None, -- "sample-interval": None -+ "sample-interval": None, -+ "tx-aggr-max-bytes": None, -+ "tx-aggr-max-frames": None, -+ "tx-aggr-time-usecs": None - } - - @classmethod -@@ -615,7 +618,7 @@ def _get_mtu(self, device, instance, ignore_missing=False): - # d is dict: {parameter: value} - def _check_parameters(self, context, d): - if context == "features": -- return True -+ return d - params = set(d.keys()) - supported_getter = { "coalesce": self._get_config_options_coalesce, \ - "pause": self._get_config_options_pause, \ -@@ -623,9 +626,8 @@ def _check_parameters(self, context, d): - "channels": self._get_config_options_channels } - supported = set(supported_getter[context]().keys()) - if not params.issubset(supported): -- log.error("unknown %s parameter(s): %s" % (context, str(params - supported))) -- return False -- return True -+ log.warning("ignoring unknown %s parameter(s): %s" % (context, str(params - supported))) -+ return {k: v for k, v in d.items() if k in supported} - - # parse output of ethtool -a - def _parse_pause_parameters(self, s): -@@ -712,17 +714,13 @@ def _get_device_parameters(self, instance, context, device): - "channels": self._parse_channels_parameters } - parser = context2parser[context] - d = parser(value) -- if context == "coalesce" and not self._check_parameters(context, d): -- return None -- return d -+ return self._check_parameters(context, d) - - def _set_device_parameters(self, instance, context, value, device, sim, - dev_params = None): - if value is None or len(value) == 0: - return None -- d = self._parse_config_parameters(value, context) -- if d is None or not self._check_parameters(context, d): -- return {} -+ d = self._check_parameters(context, self._parse_config_parameters(value, context)) - # check if device supports parameters and filter out unsupported ones - if dev_params: - self._check_device_support(instance, context, d, device, dev_params) diff --git a/tuned-2.27.0-openshift-revert.patch b/tuned-2.27.0-openshift-revert.patch deleted file mode 100644 index a4f2250..0000000 --- a/tuned-2.27.0-openshift-revert.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 8d6874c9439054f5baa04b9988d4a472c5c2924b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= -Date: Tue, 10 Feb 2026 22:36:42 +0100 -Subject: [PATCH] Revert "feat(openshift): Optimize TCP settings for high - throughput and low latency" - -This reverts commit 7a1a288e85fdcd0cb163b307a54a0718064f6641. ---- - profiles/openshift/tuned.conf | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/profiles/openshift/tuned.conf b/profiles/openshift/tuned.conf -index b3cf62b..197850c 100644 ---- a/profiles/openshift/tuned.conf -+++ b/profiles/openshift/tuned.conf -@@ -17,10 +17,6 @@ kernel.pid_max=>4194304 - fs.aio-max-nr=>1048576 - net.netfilter.nf_conntrack_max=1048576 - net.ipv4.conf.all.arp_announce=2 --net.ipv4.tcp_notsent_lowat=131072 --net.ipv4.tcp_slow_start_after_idle=0 --net.ipv4.tcp_rmem="4096 131072 16777216" --net.ipv4.tcp_wmem="4096 16384 16777216" - net.ipv4.neigh.default.gc_thresh1=8192 - net.ipv4.neigh.default.gc_thresh2=32768 - net.ipv4.neigh.default.gc_thresh3=65536 --- -2.52.0 - diff --git a/tuned-2.28.0-openshift-revert.patch b/tuned-2.28.0-openshift-revert.patch new file mode 100644 index 0000000..cbb5dc5 --- /dev/null +++ b/tuned-2.28.0-openshift-revert.patch @@ -0,0 +1,28 @@ +diff --git a/profiles/network-throughput/tuned.conf b/profiles/network-throughput/tuned.conf +index eeeb174..e531ac3 100644 +--- a/profiles/network-throughput/tuned.conf ++++ b/profiles/network-throughput/tuned.conf +@@ -7,10 +7,6 @@ summary=Optimize for streaming network throughput, generally only necessary on o + include=throughput-performance + + [sysctl] +-# Sets tcp_notsent_lowat to a value intended to balance throughput and latency while limiting total socket memory usage. +-net.ipv4.tcp_notsent_lowat=131072 +-# Disables slow start after a connection has been idle, allowing immediate maximum throughput upon resuming data transfer. +-net.ipv4.tcp_slow_start_after_idle=0 + # Increase kernel buffer size maximums. Currently this seems only necessary at 40Gb speeds. + # + # The buffer tuning values below do not account for any potential hugepage allocation. +diff --git a/profiles/openshift/tuned.conf b/profiles/openshift/tuned.conf +index 28dfb4d..197850c 100644 +--- a/profiles/openshift/tuned.conf ++++ b/profiles/openshift/tuned.conf +@@ -4,7 +4,7 @@ + + [main] + summary=Optimize systems running OpenShift (parent profile) +-include=${f:virt_check:virtual-guest:network-throughput} ++include=${f:virt_check:virtual-guest:throughput-performance} + + [selinux] + avc_cache_threshold=8192 diff --git a/tuned-2.28.0-revert-profile-migration.patch b/tuned-2.28.0-revert-profile-migration.patch new file mode 100644 index 0000000..720b7e4 --- /dev/null +++ b/tuned-2.28.0-revert-profile-migration.patch @@ -0,0 +1,80 @@ +diff --git a/doc/manual/meta/variables.adoc b/doc/manual/meta/variables.adoc +index 008ac79..197b003 100644 +--- a/doc/manual/meta/variables.adoc ++++ b/doc/manual/meta/variables.adoc +@@ -1,2 +1,2 @@ +-:system-profile-dir: /usr/lib/tuned/profiles +-:user-profile-dir: /etc/tuned/profiles ++:system-profile-dir: /usr/lib/tuned ++:user-profile-dir: /etc/tuned +diff --git a/man/tuned-adm.8 b/man/tuned-adm.8 +index 432bd20..e5c7bce 100644 +--- a/man/tuned-adm.8 ++++ b/man/tuned-adm.8 +@@ -31,8 +31,8 @@ This command line utility allows you to switch between user definable tuning + profiles. Several predefined profiles are already included. You can even + create your own profile, either based on one of the existing ones by copying + it or make a completely new one. The distribution provided profiles are stored +-in subdirectories below \fI/usr/lib/tuned/profiles/\fP and the user defined profiles in +-subdirectories below \fI/etc/tuned/profiles/\fP. If there are profiles with the same name ++in subdirectories below \fI/usr/lib/tuned\fP and the user defined profiles in ++subdirectories below \fI/etc/tuned\fP. If there are profiles with the same name + in both places, user defined profiles have precedence. + + .SH "OPTIONS" +diff --git a/man/tuned-profiles.7 b/man/tuned-profiles.7 +index 88d4dbb..e3f9262 100644 +--- a/man/tuned-profiles.7 ++++ b/man/tuned-profiles.7 +@@ -30,9 +30,9 @@ performance optimizations but there are also profiles targeted to + low power consumption, low latency and others. You can mostly deduce the + purpose of the profile by its name or you can see full description below. + +-The profiles are stored in subdirectories below \fI/usr/lib/tuned/profiles/\fP. If you +-need to customize the profiles, you can copy them to \fI/etc/tuned/profiles/\fP and modify +-them as you need. When loading profiles with the same name, \fI/etc/tuned/profiles/\fP takes ++The profiles are stored in subdirectories below \fI/usr/lib/tuned\fP. If you ++need to customize the profiles, you can copy them to \fI/etc/tuned\fP and modify ++them as you need. When loading profiles with the same name, the /etc/tuned takes + precedence. In such case you will not lose your customized profiles between + TuneD updates. + +@@ -150,8 +150,8 @@ throughput\-performance profile. + + .SH "FILES" + .nf +-.I /etc/tuned/profiles/* +-.I /usr/lib/tuned/profiles/* ++.I /etc/tuned/* ++.I /usr/lib/tuned/* + + .SH "SEE ALSO" + .BR tuned (8) +diff --git a/man/tuned.conf.5 b/man/tuned.conf.5 +index c319130..464b6be 100644 +--- a/man/tuned.conf.5 ++++ b/man/tuned.conf.5 +@@ -3,8 +3,8 @@ + tuned.conf - TuneD profile definition + .SH DESCRIPTION + This man page documents format of TuneD 2.0 profile definition files. +-The profile definition is stored in /etc/tuned/profiles//tuned.conf or in +-/usr/lib/tuned/profiles//tuned.conf file where the /etc/tuned/profiles/ directory has ++The profile definition is stored in /etc/tuned//tuned.conf or in ++/usr/lib/tuned//tuned.conf file where the /etc/tuned/ directory has + higher priority. + + The \fBtuned.conf\fR configures the profile and it is in ini-file format. +diff --git a/tuned-adm.bash b/tuned-adm.bash +index 18c716b..a4e6075 100644 +--- a/tuned-adm.bash ++++ b/tuned-adm.bash +@@ -9,7 +9,7 @@ _tuned_adm() + if [[ "$cword" -eq 1 ]]; then + COMPREPLY=( $(compgen -W "$commands" -- "$cur" ) ) + elif [[ "$cword" -eq 2 && ("$prev" == "profile" || "$prev" == "profile_info") ]]; then +- COMPREPLY=( $(compgen -W "$(command find /usr/lib/tuned/profiles /etc/tuned/profiles -mindepth 1 -maxdepth 1 -type d -printf "%f\n")" -- "$cur" ) ) ++ COMPREPLY=( $(compgen -W "$(command find /usr/lib/tuned /etc/tuned -mindepth 1 -maxdepth 1 -type d -printf "%f\n")" -- "$cur" ) ) + else + COMPREPLY=() + fi diff --git a/tuned-2.28.0-vm-laptop-mode-revert.patch b/tuned-2.28.0-vm-laptop-mode-revert.patch new file mode 100644 index 0000000..ae7ec17 --- /dev/null +++ b/tuned-2.28.0-vm-laptop-mode-revert.patch @@ -0,0 +1,37 @@ +diff --git a/doc/TIPS.txt b/doc/TIPS.txt +index 0a0c490..36b4071 100644 +--- a/doc/TIPS.txt ++++ b/doc/TIPS.txt +@@ -19,6 +19,8 @@ + * Make sure writes to hd don't wake it up too quickly: + ** Set flushing to once per 5 minutes + ** echo "3000" > /proc/sys/vm/dirty_writeback_centisecs ++** Enable laptop mode ++** echo "5" > /proc/sys/vm/laptop_mode + * Use relatime for your / partition + ** mount -o remount,relatime / + * Enable USB autosuspend by adding the following to the kernel boot commandline: +diff --git a/profiles/powersave/tuned.conf b/profiles/powersave/tuned.conf +index c8173af..fe12766 100644 +--- a/profiles/powersave/tuned.conf ++++ b/profiles/powersave/tuned.conf +@@ -37,6 +37,7 @@ panel_power_savings=3 + alpm=med_power_with_dipm + + [sysctl] ++vm.laptop_mode=5 + vm.dirty_writeback_centisecs=1500 + kernel.nmi_watchdog=0 + +diff --git a/profiles/spindown-disk/tuned.conf b/profiles/spindown-disk/tuned.conf +index 75b472b..b13dbd9 100644 +--- a/profiles/spindown-disk/tuned.conf ++++ b/profiles/spindown-disk/tuned.conf +@@ -32,6 +32,7 @@ dirty_bytes=60% + [sysctl] + vm.dirty_writeback_centisecs=6000 + vm.dirty_expire_centisecs=9000 ++vm.laptop_mode=5 + vm.swappiness=30 + + [script] diff --git a/tuned.spec b/tuned.spec index 771e753..b38aa3f 100644 --- a/tuned.spec +++ b/tuned.spec @@ -34,16 +34,16 @@ %endif %endif -#%%global prerelease rc -#%%global prereleasenum 1 +%global prerelease rc +%global prereleasenum 1 %global prerel1 %{?prerelease:.%{prerelease}%{prereleasenum}} %global prerel2 %{?prerelease:-%{prerelease}.%{prereleasenum}} Summary: A dynamic adaptive system tuning daemon Name: tuned -Version: 2.27.0 -Release: 2%{?prerel1}%{?dist} +Version: 2.28.0 +Release: 0.1%{?prerel1}%{?dist} License: GPLv2+ Source0: https://github.com/redhat-performance/%{name}/archive/v%{version}%{?prerel2}/%{name}-%{version}%{?prerel2}.tar.gz # RHEL-9 specific recommend.conf: @@ -91,6 +91,7 @@ Requires: pygobject3-base %endif Requires: virt-what Requires: ethtool +Requires: iw Requires: gawk Requires: util-linux Requires: dbus @@ -119,11 +120,11 @@ Requires: python3-syspurpose %endif %endif # Revert default profile directory migration only applicable for RHEL-10+ -Patch: tuned-2.25.0-revert-profile-migration.patch +Patch: tuned-2.28.0-revert-profile-migration.patch # Revert not yet RHEL approved tuning -Patch: tuned-2.27.0-openshift-revert.patch -# https://github.com/redhat-performance/tuned/pull/852 -Patch: tuned-2.27.0-net-coalescing-fix.patch +Patch: tuned-2.28.0-openshift-revert.patch +# Revert changes for kernel 7 +Patch: tuned-2.28.0-vm-laptop-mode-revert.patch %description The tuned package contains a daemon that tunes system settings dynamically. @@ -515,6 +516,9 @@ fi %config(noreplace) %{_sysconfdir}/tuned/tuned-main.conf %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/tuned/bootcmdline %verify(not size mtime md5) %{_sysconfdir}/modprobe.d/tuned.conf +# https://bugzilla.redhat.com/show_bug.cgi?id=2444143 +%dir %{_sysconfdir}/systemd/system.conf.d +%verify(not size mtime md5) %{_sysconfdir}/systemd/system.conf.d/00-tuned.conf %{_tmpfilesdir}/tuned.conf %{_unitdir}/tuned.service %dir %{_localstatedir}/log/tuned @@ -642,6 +646,30 @@ fi %config(noreplace) %{_sysconfdir}/tuned/ppd.conf %changelog +* Sat Aug 08 2026 Jaroslav Škarvada - 2.28.0-0.1.rc1 +- new release + - rebased tuned to latest upstream + resolves: RHEL-210923 + - scheduler: check for EPERM when setting IRQ affinity + - bootloader: set correct permission for tempdir + resolves: RHEL-121198 + - commands: better error msgs when creating directory and hardened dir mode + - docs: build reference guide + - systemd: used drop-ins for configuration + - systemd: do not backup the drop-in configuration + - net: add more coalescing options, filter out unsupported ones + - cpu: do not log error if boost isn't supported + - bootloader: add bootc loader-entries set-options-for-source support + - cpu: fixed TypeError when load_threshold is set in a profil + - openshift: include network-throughput profile + - drop support for vm.laptop_mode which is deprecated in kernel 7.0 + - net: fixed ring parser to work with rx-mini and rx-jumbo + resolves: RHEL-168025 + - lscpu_check: do not traceback on invalid regex + resolves: RHEL-132575 + - network-latency: increase AVC cache to 8192 + - functions: use iw for Wi-Fi power saving + * Mon Jun 15 2026 Jaroslav Škarvada - 2.27.0-2 - net: added more coalescing options, filter out unsupported ones resolves: RHEL-181668