new release

rebased tuned to latest upstream
    resolves: RHEL-210931
  scheduler: check for EPERM when setting IRQ affinity
    resolves: RHEL-153655
  bootloader: set correct permission for tempdir
  commands: better error msgs when creating directory and hardened dir mode
  docs: build reference guide
  systemd: used drop-ins for configuration
    resolves: RHEL-97580
  systemd: do not backup the drop-in configuration
  net: add more coalescing options, filter out unsupported ones
    resolves: RHEL-152675
  cpu: do not log error if boost isn't supported
    resolves: RHEL-169618
  bootloader: add bootc loader-entries set-options-for-source support
    resolves: RHEL-170825
  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
  lscpu_check: do not traceback on invalid regex
  network-latency: increase AVC cache to 8192
  functions: use iw for Wi-Fi power saving

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
This commit is contained in:
Jaroslav Škarvada 2026-08-08 02:27:09 +02:00
parent 32eaa53ef1
commit ef45c2dc39
6 changed files with 104 additions and 111 deletions

View File

@ -1 +1 @@
SHA512 (tuned-2.27.0.tar.gz) = 7471d073879a688da66e72c4f5c562d1a732d6bfb562d8c033874a8edbad2bab3cf3c7dc387270bf99ae6b1b35ffc451173122e32023116709567e529e09dc52
SHA512 (tuned-2.28.0-rc.1.tar.gz) = 9c2d1685464440d10d4765f1f8cc6949255e4f876ea3e5b8315900f3bb71328b78c3eb13ea9b150801d495cddc1f47f9a47eab689081cb5230c31f8172ec6027

View File

@ -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)

View File

@ -1,29 +0,0 @@
From 8d6874c9439054f5baa04b9988d4a472c5c2924b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= <jskarvad@redhat.com>
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

View File

@ -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

View File

@ -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]

View File

@ -34,19 +34,19 @@
%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: GPL-2.0-or-later AND CC-BY-SA-3.0
Source0: https://github.com/redhat-performance/%{name}/archive/v%{version}%{?prerel2}/%{name}-%{version}%{?prerel2}.tar.gz
# RHEL-9 specific recommend.conf:
# RHEL-10 specific recommend.conf:
Source1: recommend.conf
URL: http://www.tuned-project.org/
BuildArch: noarch
@ -91,6 +91,7 @@ Requires: pygobject3-base
%endif
Requires: virt-what
Requires: ethtool
Requires: iw
Requires: gawk
Requires: util-linux
Requires: dbus
@ -119,9 +120,9 @@ Requires: python3-syspurpose
%endif
%endif
# 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.
@ -512,6 +513,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
@ -639,6 +643,32 @@ fi
%config(noreplace) %{_sysconfdir}/tuned/ppd.conf
%changelog
* Sat Aug 08 2026 Jaroslav Škarvada <jskarvad@redhat.com> - 2.28.0-0.1.rc1
- new release
- rebased tuned to latest upstream
resolves: RHEL-210931
- scheduler: check for EPERM when setting IRQ affinity
resolves: RHEL-153655
- bootloader: set correct permission for tempdir
- commands: better error msgs when creating directory and hardened dir mode
- docs: build reference guide
- systemd: used drop-ins for configuration
resolves: RHEL-97580
- systemd: do not backup the drop-in configuration
- net: add more coalescing options, filter out unsupported ones
resolves: RHEL-152675
- cpu: do not log error if boost isn't supported
resolves: RHEL-169618
- bootloader: add bootc loader-entries set-options-for-source support
resolves: RHEL-170825
- 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
- lscpu_check: do not traceback on invalid regex
- network-latency: increase AVC cache to 8192
- functions: use iw for Wi-Fi power saving
* Mon Jun 15 2026 Jaroslav Škarvada <jskarvad@redhat.com> - 2.27.0-2
- net: added more coalescing options, filter out unsupported ones
resolves: RHEL-181667