From 64013a962d2ce7fc0b6c6ff498237a33a20b4edb Mon Sep 17 00:00:00 2001 From: AlmaLinux RelEng Bot Date: Tue, 4 Aug 2026 15:14:46 -0400 Subject: [PATCH] import CS git tuned-2.27.0-2.el10_2 --- .gitignore | 2 +- sources | 2 +- ...0-cpu-partitioning-initrd-workaround.patch | 68 ----------------- tuned-2.27.0-net-coalescing-fix.patch | 73 +++++++++++++++++++ tuned-2.27.0-openshift-revert.patch | 29 ++++++++ tuned.spec | 37 ++++++++-- 6 files changed, 136 insertions(+), 75 deletions(-) delete mode 100644 tuned-2.26.0-cpu-partitioning-initrd-workaround.patch create mode 100644 tuned-2.27.0-net-coalescing-fix.patch create mode 100644 tuned-2.27.0-openshift-revert.patch diff --git a/.gitignore b/.gitignore index 39a6bf9..9aee406 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -tuned-2.26.0.tar.gz +tuned-2.27.0.tar.gz diff --git a/sources b/sources index d5c0c47..f515150 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (tuned-2.26.0.tar.gz) = af468e1b4ca2e10cf00cad53f27d65d0b5eab73e65b9c61d67fd39ff9687700704db87294fbf62bda949b3544a9ba69c82f6d35f448226654a5949fa8de1b2c0 +SHA512 (tuned-2.27.0.tar.gz) = 7471d073879a688da66e72c4f5c562d1a732d6bfb562d8c033874a8edbad2bab3cf3c7dc387270bf99ae6b1b35ffc451173122e32023116709567e529e09dc52 diff --git a/tuned-2.26.0-cpu-partitioning-initrd-workaround.patch b/tuned-2.26.0-cpu-partitioning-initrd-workaround.patch deleted file mode 100644 index c97cada..0000000 --- a/tuned-2.26.0-cpu-partitioning-initrd-workaround.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 8889fbb65a2fef367811dbbf97aaa77afcc59d09 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= -Date: Wed, 8 Oct 2025 19:29:41 +0200 -Subject: [PATCH] cpu-partitioning: autodetect dracut hook directory, - workaround for systemd -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Wrong hook directory can make the machine unbootable: -https://issues.redhat.com/browse/RHEL-119889 - -Also added workaround for currently non-functional systemd plugin -which doesn't include the systemd config into the initrd image. - -Signed-off-by: Jaroslav Škarvada ---- - profiles/cpu-partitioning/script.sh | 13 +++++++++++-- - profiles/cpu-partitioning/tuned.conf | 3 ++- - 2 files changed, 13 insertions(+), 3 deletions(-) - -diff --git a/profiles/cpu-partitioning/script.sh b/profiles/cpu-partitioning/script.sh -index ec422ca..5fe8d7d 100755 ---- a/profiles/cpu-partitioning/script.sh -+++ b/profiles/cpu-partitioning/script.sh -@@ -3,10 +3,19 @@ - . /usr/lib/tuned/functions - - start() { -+ DRACUT_VER=`dracut --version | sed 's/^.* \([0-9]\+\).*/\1/'` -+ echo "$DRACUT_VER" | grep -q '^[[:digit:]]\+$' || DRACUT_VER="0" -+ # https://issues.redhat.com/browse/RHEL-119889 -+ if [ "$DRACUT_VER" -gt "102" ] -+ then -+ DRACUT_HOOK_DIR="/var/lib/dracut/hooks/pre-udev" -+ else -+ DRACUT_HOOK_DIR="/usr/lib/dracut/hooks/pre-udev" -+ fi - mkdir -p "${TUNED_tmpdir}/etc/systemd" -- mkdir -p "${TUNED_tmpdir}/usr/lib/dracut/hooks/pre-udev" -+ mkdir -p "${TUNED_tmpdir}${DRACUT_HOOK_DIR}" - cp /etc/systemd/system.conf "${TUNED_tmpdir}/etc/systemd/" -- cp 00-tuned-pre-udev.sh "${TUNED_tmpdir}/usr/lib/dracut/hooks/pre-udev/" -+ cp 00-tuned-pre-udev.sh "${TUNED_tmpdir}${DRACUT_HOOK_DIR}" - setup_kvm_mod_low_latency - disable_ksm - return "$?" -diff --git a/profiles/cpu-partitioning/tuned.conf b/profiles/cpu-partitioning/tuned.conf -index 11f03cf..e795dcb 100644 ---- a/profiles/cpu-partitioning/tuned.conf -+++ b/profiles/cpu-partitioning/tuned.conf -@@ -23,6 +23,7 @@ tmpdir=${f:strip:${f:exec:mktemp:-d}} - isolated_cores_expanded=${f:cpulist_unpack:${isolated_cores}} - isolated_cpumask=${f:cpulist2hex:${isolated_cores_expanded}} - not_isolated_cores_expanded=${f:cpulist_invert:${isolated_cores_expanded}} -+not_isolated_cores=${f:cpulist_pack:${not_isolated_cores_expanded}} - isolated_cores_online_expanded=${f:cpulist_online:${isolated_cores}} - not_isolated_cores_online_expanded=${f:cpulist_online:${not_isolated_cores_expanded}} - not_isolated_cpumask=${f:cpulist2hex:${not_isolated_cores_expanded}} -@@ -62,4 +63,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${cmd_isolcpus} nohz_full=${isolated_cores} rcu_nocbs=${isolated_cores} tuned.non_isolcpus=${not_isolated_cpumask} systemd.cpu_affinity=${not_isolated_cores} intel_pstate=disable nosoftlockup --- -2.51.0 - diff --git a/tuned-2.27.0-net-coalescing-fix.patch b/tuned-2.27.0-net-coalescing-fix.patch new file mode 100644 index 0000000..c263b2c --- /dev/null +++ b/tuned-2.27.0-net-coalescing-fix.patch @@ -0,0 +1,73 @@ +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 new file mode 100644 index 0000000..a4f2250 --- /dev/null +++ b/tuned-2.27.0-openshift-revert.patch @@ -0,0 +1,29 @@ +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.spec b/tuned.spec index a2ea125..6ae8e8f 100644 --- a/tuned.spec +++ b/tuned.spec @@ -42,8 +42,8 @@ Summary: A dynamic adaptive system tuning daemon Name: tuned -Version: 2.26.0 -Release: 1%{?prerel1}%{?dist}.1 +Version: 2.27.0 +Release: 2%{?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: @@ -118,8 +118,10 @@ Recommends: subscription-manager Requires: python3-syspurpose %endif %endif -# https://github.com/redhat-performance/tuned/pull/805 -Patch: tuned-2.26.0-cpu-partitioning-initrd-workaround.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 %description The tuned package contains a daemon that tunes system settings dynamically. @@ -308,7 +310,7 @@ make install-ppd DESTDIR="%{buildroot}" BINDIR="%{_bindir}" \ SBINDIR="%{_sbindir}" DOCDIR="%{docdir}" %{make_python_arg} # manual -make install-html DESTDIR=%{buildroot} DOCDIR=%{docdir} +make install-html DESTDIR=%{buildroot} DOCDIR=%{docdir} %{make_python_arg} # conditional support for grub2, grub2 is not available on all architectures # and tuned is noarch package, thus the following hack is needed @@ -637,6 +639,31 @@ fi %config(noreplace) %{_sysconfdir}/tuned/ppd.conf %changelog +* Mon Jun 15 2026 Jaroslav Škarvada - 2.27.0-2 +- net: added more coalescing options, filter out unsupported ones + resolves: RHEL-181667 + +* Sun Feb 22 2026 Jaroslav Škarvada - 2.27.0-1 +- new release + - rebased tuned to latest upstream + related: RHEL-123608 + +* Tue Feb 10 2026 Jaroslav Škarvada - 2.27.0-0.1.rc1 +- new release + - rebased tuned to latest upstream + resolves: RHEL-123608 + - cpu-partitioning: autodetect dracut hook directory, systemd workaround + resolves: RHEL-40619 + - openshift: optimize TCP settings for high throughput and low latency + - profiles: Set boost=1 in *-performance profiles + - sap-hana: force latency to 70 us, not to C-states + resolves: RHEL-142285 + - man: fixed instance_acquire_devices example in tuned-adm man + resolves: RHEL-90575 + - spec: use correct python interpreter for documentation installation + - sysctl: add reapply_sysctl_exclude option + - ppd: ask tuned recommend for base profile + * Mon Oct 20 2025 Jaroslav Škarvada - 2.26.0-1.1 - cpu-partitioning: added initrd generation dracut/systemd workarounds resolves: RHEL-120175