Rebase to upstream version 0.17
This commit is contained in:
parent
3e2ea53472
commit
4277cf1735
1
.gitignore
vendored
1
.gitignore
vendored
@ -6,3 +6,4 @@
|
||||
/tuna-0.14.1.tar.xz
|
||||
/tuna-0.15.tar.xz
|
||||
/tuna-0.16.tar.xz
|
||||
/tuna-0.17.tar.xz
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (tuna-0.16.tar.xz) = 971f3e91906c85830d1945fd876a961785d4741f4df53c701b4f8871bd8d2633327cfd994b80687fbb385fb4d3448a9280773c9a0c49db54fe9cf0983a6df80a
|
||||
SHA512 (tuna-0.17.tar.xz) = e04bb56415e702e888d7022342e34bdff19fe978e13793e737613baf48eadcd1b926d414ec8ba5205c9bea4622bf44b9b12e1fe33e1a89b467bd84e17c4643c4
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
16
tuna.spec
16
tuna.spec
@ -1,6 +1,6 @@
|
||||
Name: tuna
|
||||
Version: 0.16
|
||||
Release: 6%{?dist}
|
||||
Version: 0.17
|
||||
Release: 1%{?dist}
|
||||
License: GPLv2
|
||||
Summary: Application tuning GUI & command line utility
|
||||
URL: https://git.kernel.org/pub/scm/utils/tuna/tuna.git
|
||||
@ -14,10 +14,6 @@ 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
|
||||
|
||||
%description
|
||||
Provides interface for changing scheduler and IRQ tunables, at whole CPU and at
|
||||
@ -30,10 +26,6 @@ installed.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
|
||||
%build
|
||||
%py3_build
|
||||
@ -75,6 +67,10 @@ done
|
||||
%{_datadir}/polkit-1/actions/org.tuna.policy
|
||||
|
||||
%changelog
|
||||
* 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