import tuna-0.17-2.el9

This commit is contained in:
CentOS Sources 2022-03-01 08:11:44 -05:00 committed by Stepan Oksanichenko
parent 3bb4e5c8e0
commit 456e1e17d6
8 changed files with 48 additions and 216 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/tuna-0.16.tar.xz
SOURCES/tuna-0.17.tar.xz

View File

@ -1 +1 @@
634c59ed06f7e638412e0e4832cf811c432a767b SOURCES/tuna-0.16.tar.xz
9bde1e92e09277efcb13ee5808baa1632ae815cb SOURCES/tuna-0.17.tar.xz

View File

@ -1,49 +0,0 @@
From c9d2fc624905cd0af96ee9f84317d562a042fe14 Mon Sep 17 00:00:00 2001
From: Leah Leshchinsky <lleshchi@redhat.com>
Date: Wed, 6 Oct 2021 13:21:50 -0400
Subject: [PATCH] tuna: Add distinction between --spread and --move to error
message
Currently, the command `tuna --cpus=CPU-LIST --spread` generates an
error with the warning "tuna: --move requires a list of threads/irqs!".
Similarly, when the command `tuna --threads=THREAD-LIST --spread` is
run, it generates the warning "tuna: --move requires a cpu list!".
This can be confusing to the user, especially with commands that use both
the "--spread" and "--move" flags. The warning should specify "--spread"
when that is the source of the error.
Check whether the argument is a move or spread and update the warning
string accordingly.
Signed-off-by: Leah Leshchinsky <lleshchi@redhat.com>
---
tuna-cmd.py | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/tuna-cmd.py b/tuna-cmd.py
index 8617966..8dfad9e 100755
--- a/tuna-cmd.py
+++ b/tuna-cmd.py
@@ -633,15 +633,14 @@ def main():
elif o in ("-n", "--show_sockets"):
show_sockets = True
elif o in ("-m", "--move", "-x", "--spread"):
+ spread = o in ("-x", "--spread")
if not cpu_list:
- print("tuna: --move " + _("requires a cpu list!"))
+ print("tuna: %s " % ("--spread" if spread else "--move") + _("requires a cpu list!"))
sys.exit(2)
if not (thread_list or irq_list):
- print("tuna: --move " + _("requires a list of threads/irqs!"))
+ print("tuna: %s " % ("--spread" if spread else "--move") + _("requires a list of threads/irqs!"))
sys.exit(2)
- spread = o in ("-x", "--spread")
-
if thread_list:
tuna.move_threads_to_cpu(cpu_list, thread_list, spread=spread)
--
2.27.0

View File

@ -0,0 +1,35 @@
From 7684169d22af5379d2f466730c450afc92e80da8 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Tue, 11 Jan 2022 16:58:58 -0500
Subject: [PATCH] tuna: Fix ModuleNotFoundError
commit 43b434867514934593ada5aa8ea448ef6a1778f9 fixed the problem with
relative imports but unfortunately created a new problem with installed
tuna
This fixes the original problem and also fixes the ModuleNotFoundError
in an installed (not running from git) version of tuna.
Signed-off-by: John Kacur <jkacur@redhat.com>
---
tuna/tuna.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tuna/tuna.py b/tuna/tuna.py
index 98a1725598dd..8fb42121e2e4 100755
--- a/tuna/tuna.py
+++ b/tuna/tuna.py
@@ -12,8 +12,8 @@ import platform
import ethtool
import procfs
from procfs import utilist
-import help
-import tuna_sched
+from tuna import help
+from tuna import tuna_sched
try:
fntable
--
2.27.0

View File

@ -1,61 +0,0 @@
From 6e43ce523e7b403cc4f5e94c988d8811d2053e0f Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Tue, 14 Dec 2021 14:59:50 -0500
Subject: [PATCH] tuna: Fix tuna displays incorrect cpu affinity when cpu is
offlined
If we create a process and query it's affinity, both taskset and tuna
display the same result, but if we then disable a processor, tuna
displays the wrong affinity, as below.
[jkacur@fionn tuna]$ sha1sum /dev/zero &
[1] 10640
[jkacur@fionn tuna]$ taskset -p 10640
pid 10640's current affinity mask: fff
[jkacur@fionn tuna]$ su -c './tuna-cmd.py -t sha1sum -P'
Password:
thread ctxt_switches
pid SCHED_ rtpri affinity voluntary nonvoluntary cmd
10640 OTHER 0 0xfff 0 423 sha1sum
[jkacur@fionn tuna]$ su -c 'chcpu -d 5'
Password:
CPU 5 disabled
[jkacur@fionn tuna]$ taskset -p 10640
pid 10640's current affinity mask: fdf
[jkacur@fionn tuna]$ su -c './tuna-cmd.py -t sha1sum -P'
Password:
thread ctxt_switches
pid SCHED_ rtpri affinity voluntary nonvoluntary cmd
10640 OTHER 0 0x7df 0 919 sha1sum
The reason for this is that after tuna gets the affinity for the
process, when it converts this to a hex value, it passes the number of
enabled processors to hexbitmask in procfs, when what we really need is
the number of processors including disabled ones.
Fix this by querrying SC_NPROCESSORS_CONF and passing that value to
hexbitmask.
Signed-off-by: John Kacur <jkacur@redhat.com>
---
tuna-cmd.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tuna-cmd.py b/tuna-cmd.py
index d209a2e89493..7e33a128d676 100755
--- a/tuna-cmd.py
+++ b/tuna-cmd.py
@@ -199,7 +199,9 @@ def format_affinity(affinity):
if len(affinity) <= 4:
return ",".join(str(a) for a in affinity)
- return ",".join(str(hex(a)) for a in procfs.hexbitmask(affinity, get_nr_cpus()))
+ # We need the number of cpus on a system, including disabled ones
+ ncpus = os.sysconf('SC_NPROCESSORS_CONF')
+ return ",".join(str(hex(a)) for a in procfs.hexbitmask(affinity, ncpus))
def ps_show_thread(pid, affect_children, ps, has_ctxt_switch_info, sock_inodes,
--
2.31.1

View File

@ -1,55 +0,0 @@
From 532739e58bc36df820a1742489c744e7589221d0 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Wed, 10 Nov 2021 15:58:44 -0500
Subject: [PATCH] tuna: Make it clear that include and isolate affects IRQs in
help
Make it clear in the online help (-h) and in the manpage
that
-i --isolate
-I --include
affects IRQs as well as threads
Signed-off-by: John Kacur <jkacur@redhat.com>
---
docs/tuna.8 | 4 ++--
tuna-cmd.py | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/tuna.8 b/docs/tuna.8
index b6431be5e117..bd6299b5a771 100644
--- a/docs/tuna.8
+++ b/docs/tuna.8
@@ -26,10 +26,10 @@ Apply changes described in profile
List preloaded profiles
.TP
\fB\-i\fR, \fB\-\-isolate\fR
-Move all threads away from CPU\-LIST. Requires \fB\-c\fR or \fB-S\fR.
+Move all allowed threads and IRQs away from CPU\-LIST. Requires \fB\-c\fR or \fB-S\fR.
.TP
\fB\-I\fR, \fB\-\-include\fR
-Allow all threads to run on CPU\-LIST. Requires \fB\-c\fR or \fB-S\fR.
+Allow all allowed threads and IRQs to run on CPU\-LIST. Requires \fB\-c\fR or \fB-S\fR.
.TP
\fB\-m\fR, \fB\-\-move\fR
Move selected entities to CPU\-LIST. Requires \fB\-c\fR and either \fB-t\fR or \fB-q\fR.
diff --git a/tuna-cmd.py b/tuna-cmd.py
index 46ce86efa036..d209a2e89493 100755
--- a/tuna-cmd.py
+++ b/tuna-cmd.py
@@ -63,9 +63,9 @@ def usage():
_('Explicitly disable usage of perf in GUI for process view')))
print(fmt % ('-f, --filter',
_('Display filter the selected entities')))
- print(fmt % ('-i, --isolate', _('Move all threads away from %(cpulist)s') %
+ print(fmt % ('-i, --isolate', _('Move all allowed threads and IRQs away from %(cpulist)s') %
{"cpulist": _('CPU-LIST')}))
- print(fmt % ('-I, --include', _('Allow all threads to run on %(cpulist)s') %
+ print(fmt % ('-I, --include', _('Allow all allowed threads and IRQs to run on %(cpulist)s') %
{"cpulist": _('CPU-LIST')}))
print(fmt % ('-K, --no_kthreads',
_('Operations will not affect kernel threads')))
--
2.31.1

View File

@ -1,40 +0,0 @@
From 1dd72d9db74b063c8dd96f13701a14e299abc325 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Thu, 28 Oct 2021 00:50:12 -0400
Subject: [PATCH 1/2] tuna: Print warning if setting affinity results in EBUSY
and continue
When trying to isolate a CPU, if a device uses SCHED_DEADLINE and admission
control is enabled, setting the affinity will result in the error EBUSY.
tuna should print a warning that this pid could not be moved, and
continue.
The user can either ignore the warning or use other measures to isolate
the cpu such as booting with isolcpus or turning off admission control
and rerunning the tuna isolate command and then turning admission
control back on.
Signed-off-by: John Kacur <jkacur@redhat.com>
---
tuna/tuna.py | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tuna/tuna.py b/tuna/tuna.py
index 591206d9b4e1..f25eb3d10923 100755
--- a/tuna/tuna.py
+++ b/tuna/tuna.py
@@ -360,6 +360,10 @@ def isolate_cpus(cpus, nr_cpus):
if err.args[0] == errno.EINVAL:
print("Function:", fname, ",", err.strerror, file=sys.stderr)
sys.exit(2)
+ if err.args[0] == errno.EBUSY:
+ comm = ps[pid].stat["comm"]
+ print(f'Warning: Unable to isolate pid {pid} [{comm}]')
+ continue
raise err
if "threads" not in ps[pid]:
--
2.31.1

View File

@ -1,6 +1,6 @@
Name: tuna
Version: 0.16
Release: 6%{?dist}
Version: 0.17
Release: 2%{?dist}
License: GPLv2
Summary: Application tuning GUI & command line utility
URL: https://git.kernel.org/pub/scm/utils/tuna/tuna.git
@ -14,10 +14,7 @@ Requires: python3-linux-procfs >= 0.6
# Requires: python-inet_diag
# Patches
Patch1: tuna-Print-warning-if-setting-affinity-results-in-EBUSY.patch
Patch2: tuna-Add-distinction-between-spread-and-move-to-erro.patch
Patch3: tuna-Make-it-clear-that-include-and-isolate-affects-IRQs.patch
Patch4: tuna-Fix-tuna-displays-incorrect-cpu-affinity-when-c.patch
Patch1: tuna-Fix-ModuleNotFoundError.patch
%description
Provides interface for changing scheduler and IRQ tunables, at whole CPU and at
@ -31,9 +28,6 @@ installed.
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%build
%py3_build
@ -75,6 +69,14 @@ done
%{_datadir}/polkit-1/actions/org.tuna.policy
%changelog
* Thu Jan 13 2022 Leah Leshchinsky <lleshchi@redhat.com> - 0.17-2
- Fix ModuleNotFoundError
Resolves: rhbz#2012307
* Tue Jan 11 2022 Leah Leshchinsky <lleshchi@redhat.com> - 0.17-1
- Rebase to upstream version 0.17
Resolves: rhbz#2012307
* Tue Dec 14 2021 John Kacur <jkacur@redhat.com> - 0.16-6
- Display correct cpu-affinity when a cpu is disabled
Resolves: rhbz#2032460