import tuna-0.17-2.el9
This commit is contained in:
parent
3bb4e5c8e0
commit
456e1e17d6
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
||||
SOURCES/tuna-0.16.tar.xz
|
||||
SOURCES/tuna-0.17.tar.xz
|
||||
|
@ -1 +1 @@
|
||||
634c59ed06f7e638412e0e4832cf811c432a767b SOURCES/tuna-0.16.tar.xz
|
||||
9bde1e92e09277efcb13ee5808baa1632ae815cb SOURCES/tuna-0.17.tar.xz
|
||||
|
@ -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
|
||||
|
35
SOURCES/tuna-Fix-ModuleNotFoundError.patch
Normal file
35
SOURCES/tuna-Fix-ModuleNotFoundError.patch
Normal 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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user