new release

rebased tuned to latest upstream
    resolves: rhbz#1874052
  added plugin service for linux services control
    resolves: rhbz#1869991
  scheduler: added default_irq_smp_affinity option
    resolves: rhbz#1896348
  bootloader: skip boom managed BLS snippets
    resolves: rhbz#1901532
  scheduler: added perf_process_fork option to enable processing of fork
    resolves: rhbz#1894610
  scheduler: added perf_mmap_pages option to set perf buffer size
    resolves: rhbz#1890219
  bootloader: fixed cmdline duplication with BLS and grub2-mkconfig
    resolves: rhbz#1777874
This commit is contained in:
Jaroslav Škarvada 2020-12-01 20:06:30 +01:00
parent d60d747b88
commit ce00809fef
4 changed files with 56 additions and 107 deletions

View File

@ -1 +1 @@
SHA512 (tuned-2.14.0.tar.gz) = b44391962d820f74f42926bdcded51ef539ec6b8086807cb8454aea98755d3f61343a96c52d665079bb0aa3916aeba3eb1bbdc5d95f64ece08aca3114a954683
SHA512 (tuned-2.15.0-rc.1.tar.gz) = 93d4bddf289734bf96cadda0ae402ba29774ad968bce379f4ac4dc28dbfd75f9ea54ef24988369c9558cbe48c7b378e751ae39ddd9cf483dd60873c62d4a967c

View File

@ -1,30 +0,0 @@
From f511ad5d48f4f2ae3b2616463bc3a17bae5bdb90 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= <jskarvad@redhat.com>
Date: Tue, 30 Jun 2020 15:39:18 +0200
Subject: [PATCH] throughput-performance: fix performance regression on AMD
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
It turned out that disablement of the numa_balancing could result in
upto 20% performance drop on some loads.
Related: rhbz#1746957
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
---
profiles/throughput-performance/tuned.conf | 1 -
1 file changed, 1 deletion(-)
diff --git a/profiles/throughput-performance/tuned.conf b/profiles/throughput-performance/tuned.conf
index f1a6f1a..3cc6fd1 100644
--- a/profiles/throughput-performance/tuned.conf
+++ b/profiles/throughput-performance/tuned.conf
@@ -85,4 +85,3 @@ type=sysctl
uname_regex=x86_64
cpuinfo_regex=${amd_cpuinfo_regex}
kernel.sched_migration_cost_ns=5000000
-kernel.numa_balancing=0
--
2.25.4

View File

@ -1,55 +0,0 @@
From daf02c380515b42db06d9f743070af5ab248a414 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= <jskarvad@redhat.com>
Date: Fri, 3 Jul 2020 12:17:03 +0200
Subject: [PATCH] scheduler: fix isolated_cores to work with cgroups
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
It seems cpuset.cpus needs to be initialized before writing to tasks.
Related: rhbz#1784648
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
---
tuned/plugins/plugin_scheduler.py | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/tuned/plugins/plugin_scheduler.py b/tuned/plugins/plugin_scheduler.py
index 745ee4a..9ad9f54 100644
--- a/tuned/plugins/plugin_scheduler.py
+++ b/tuned/plugins/plugin_scheduler.py
@@ -106,6 +106,7 @@ class SchedulerPlugin(base.Plugin):
# calculated by isolated_cores setter
self._affinity = None
+ self._cgroup_affinity_initialized = False
self._cgroup = None
self._cgroups = collections.OrderedDict([(self._sanitize_cgroup_path(option[7:]), self._variables.expand(affinity))
for option, affinity in instance.options.items() if option[:7] == "cgroup." and len(option) > 7])
@@ -478,11 +479,14 @@ class SchedulerPlugin(base.Plugin):
log.error("Unable to set affinity '%s' for cgroup '%s'" % (affinity, cgroup))
def _cgroup_set_affinity(self):
+ if self._cgroup_affinity_initialized:
+ return
log.debug("Setting cgroups affinities")
if self._affinity is not None and self._cgroup is not None and not self._cgroup in self._cgroups:
self._cgroup_set_affinity_one(self._cgroup, self._affinity, backup = True)
for cg in self._cgroups.items():
self._cgroup_set_affinity_one(cg[0], cg[1], backup = True)
+ self._cgroup_affinity_initialized = True
def _cgroup_restore_affinity(self):
log.debug("Restoring cgroups affinities")
@@ -920,6 +924,7 @@ class SchedulerPlugin(base.Plugin):
return self._verify_all_irq_affinity(affinity, ignore_missing)
elif enabling:
if self._cgroup:
+ self._cgroup_set_affinity()
ps_affinity = "cgroup.%s" % self._cgroup
else:
ps_affinity = affinity
--
2.25.4

View File

@ -25,19 +25,18 @@
%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.14.0
Release: 3%{?prerel1}%{?dist}
Version: 2.15.0
Release: 0.1%{?prerel1}%{?dist}
License: GPLv2+
Source0: https://github.com/redhat-performance/%{name}/archive/v%{version}%{?prerel2}/%{name}-%{version}%{?prerel2}.tar.gz
URL: http://www.tuned-project.org/
BuildArch: noarch
BuildRequires: systemd, desktop-file-utils
@ -61,26 +60,24 @@ Requires: %{_py}-schedutils, %{_py}-linux-procfs, %{_py}-perf
BuildRequires: python3-dbus, python3-gobject-base
Requires: python3-dbus, python3-gobject-base
%if 0%{?fedora} > 22 || 0%{?rhel} > 7
Recommends: python3-dmidecode
Recommends: dmidecode
%endif
%else
# BuildRequires for 'make test'
BuildRequires: dbus-python, pygobject3-base
Requires: dbus-python, pygobject3-base
%if 0%{?fedora} > 22 || 0%{?rhel} > 7
Recommends: python-dmidecode
%endif
%endif
Requires: virt-what, ethtool, gawk, hdparm
Requires: virt-what, ethtool, gawk
Requires: util-linux, dbus, polkit
%if 0%{?fedora} > 22 || 0%{?rhel} > 7
Recommends: dmidecode
Recommends: hdparm
Recommends: kernel-tools
Recommends: kmod
%endif
%if 0%{?rhel} > 7
Requires: python3-syspurpose
%endif
Patch0: tuned-2.14.0-amd-performance-regression-fix.patch
Patch1: tuned-2.14.0-scheduler-isolated-cores-cgroups-fix.patch
%description
The tuned package contains a daemon that tunes system settings dynamically.
@ -190,11 +187,6 @@ Requires: %{name} = %{version}
Requires: %{name}-profiles-realtime = %{version}
Requires: tuna
Requires: nmap-ncat
%if 0%{?rhel} == 7
Requires: qemu-kvm-tools-rhev
%else
Recommends: tuned-profiles-nfv-host-bin
%endif
%description profiles-nfv-host
Additional tuned profile(s) targeted to Network Function Virtualization (NFV) host.
@ -231,6 +223,13 @@ Requires: %{name} = %{version}
Additional tuned profiles mainly for backward compatibility with tuned 1.0.
It can be also used to fine tune your system for specific scenarios.
%package profiles-postgresql
Summary: Additional tuned profile(s) targeted to PostgreSQL server loads
Requires: %{name} = %{version}
%description profiles-postgresql
Additional tuned profile(s) targeted to PostgreSQL server loads.
%prep
%autosetup -p1 -n %{name}-%{version}%{?prerel2}
@ -268,8 +267,13 @@ touch %{buildroot}%{_sysconfdir}/modprobe.d/kvm.rt.tuned.conf
# validate desktop file
desktop-file-validate %{buildroot}%{_datadir}/applications/tuned-gui.desktop
# Run tests on RHEL > 7 or non RHEL
# We cannot run tests on RHEL-7 because there is no python-mock package and
# python-2.7 doesn't have mock built-in
%if 0%{?rhel} > 7 || ! 0%{?rhel}
%check
make test
make test %{make_python_arg}
%endif
%post
%systemd_post tuned.service
@ -316,11 +320,18 @@ if [ "$1" == 0 ]; then
then
for f in /boot/loader/entries/$MACHINE_ID-*.conf
do
if [ -f "$f" -a "${f: -12}" != "-rescue.conf" ]
# Skip non-files and rescue entries
if [ ! -f "$f" -o "${f: -12}" == "-rescue.conf" ]
then
sed -i '/^\s*options\s\+.*\$tuned_params/ s/\s\+\$tuned_params\b//g' "$f" &>/dev/null || :
sed -i '/^\s*initrd\s\+.*\$tuned_initrd/ s/\s\+\$tuned_initrd\b//g' "$f" &>/dev/null || :
continue
fi
# Skip boom managed entries
if [[ "$f" =~ \w*-[0-9a-f]{7,}-.*-.*.conf ]]
then
continue
fi
sed -i '/^\s*options\s\+.*\$tuned_params/ s/\s\+\$tuned_params\b//g' "$f" &>/dev/null || :
sed -i '/^\s*initrd\s\+.*\$tuned_initrd/ s/\s\+\$tuned_initrd\b//g' "$f" &>/dev/null || :
done
fi
fi
@ -379,6 +390,7 @@ fi
%exclude %{_prefix}/lib/tuned/realtime-virtual-host
%exclude %{_prefix}/lib/tuned/cpu-partitioning
%exclude %{_prefix}/lib/tuned/spectrumscale-ece
%exclude %{_prefix}/lib/tuned/postgresql
%{_prefix}/lib/tuned
%dir %{_sysconfdir}/tuned
%dir %{_sysconfdir}/tuned/recommend.d
@ -492,7 +504,29 @@ fi
%{_prefix}/lib/tuned/spindown-disk
%{_mandir}/man7/tuned-profiles-compat.7*
%files profiles-postgresql
%defattr(-,root,root,-)
%{_prefix}/lib/tuned/postgresql
%{_mandir}/man7/tuned-profiles-postgresql.7*
%changelog
* Tue Dec 1 2020 Jaroslav Škarvada <jskarvad@redhat.com> - 2.15.0-0.1.rc1
- new release
- rebased tuned to latest upstream
resolves: rhbz#1874052
- added plugin service for linux services control
resolves: rhbz#1869991
- scheduler: added default_irq_smp_affinity option
resolves: rhbz#1896348
- bootloader: skip boom managed BLS snippets
resolves: rhbz#1901532
- scheduler: added perf_process_fork option to enable processing of fork
resolves: rhbz#1894610
- scheduler: added perf_mmap_pages option to set perf buffer size
resolves: rhbz#1890219
- bootloader: fixed cmdline duplication with BLS and grub2-mkconfig
resolves: rhbz#1777874
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.14.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild