Compare commits
No commits in common. "c8" and "imports/c8s/tuna-0.16-5.el8" have entirely different histories.
c8
...
imports/c8
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
||||
SOURCES/tuna-0.18.tar.xz
|
||||
SOURCES/tuna-0.16.tar.xz
|
||||
|
1
.tuna.metadata
Normal file
1
.tuna.metadata
Normal file
@ -0,0 +1 @@
|
||||
634c59ed06f7e638412e0e4832cf811c432a767b SOURCES/tuna-0.16.tar.xz
|
@ -1,357 +0,0 @@
|
||||
From 8c9b74f89c616a7aebbbd159e71aeb3c49979472 Mon Sep 17 00:00:00 2001
|
||||
From: Clark Williams <clrkwllms@kernel.org>
|
||||
Date: Thu, 17 Aug 2023 08:12:38 -0500
|
||||
Subject: [PATCH 1/2] Add SPDX license identifiers
|
||||
|
||||
use SPDX license identifiers to clarify the licences under which
|
||||
tuna is released.
|
||||
|
||||
Signed-off-by: Clark Williams <williams@redhat.com>
|
||||
Signed-off-by: John Kacur <jkacur@redhat.com>
|
||||
---
|
||||
Makefile | 3 +++
|
||||
org.tuna.policy | 1 +
|
||||
oscilloscope-cmd.py | 15 +--------------
|
||||
setup.py | 1 +
|
||||
testuna | 10 +++++-----
|
||||
tuna-cmd.py | 9 +--------
|
||||
tuna.desktop | 1 +
|
||||
tuna/__init__.py | 2 +-
|
||||
tuna/config.py | 2 ++
|
||||
tuna/gui/__init__.py | 2 ++
|
||||
tuna/gui/commonview.py | 2 ++
|
||||
tuna/gui/cpuview.py | 1 +
|
||||
tuna/gui/irqview.py | 1 +
|
||||
tuna/gui/procview.py | 1 +
|
||||
tuna/gui/profileview.py | 1 +
|
||||
tuna/gui/util.py | 1 +
|
||||
tuna/new_eth.py | 1 +
|
||||
tuna/oscilloscope.py | 15 +--------------
|
||||
tuna/sysfs.py | 2 ++
|
||||
tuna/tuna.py | 7 ++++---
|
||||
tuna/tuna_gui.py | 1 +
|
||||
tuna/tuna_sched.py | 1 +
|
||||
22 files changed, 35 insertions(+), 45 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 50ded3985743..a3d71d2de896 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,3 +1,6 @@
|
||||
+#
|
||||
+# SPDX-License-Identifier: GPL-2.0-only
|
||||
+#
|
||||
PACKAGE := tuna
|
||||
VERSION := $(shell rpm -q --qf '%{VERSION} ' --specfile rpm/SPECS/$(PACKAGE).spec | cut -d' ' -f1)
|
||||
|
||||
diff --git a/org.tuna.policy b/org.tuna.policy
|
||||
index 4f71d4ad65f4..b3b3900a4d76 100644
|
||||
--- a/org.tuna.policy
|
||||
+++ b/org.tuna.policy
|
||||
@@ -1,4 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
+<!-- SPDX-License-Identifier: GPL-2.0-only -->
|
||||
<!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD polkit Policy Configuration 1.0//EN"
|
||||
"http://www.freedesktop.org/software/polkit/policyconfig-1.dtd">
|
||||
<policyconfig>
|
||||
diff --git a/oscilloscope-cmd.py b/oscilloscope-cmd.py
|
||||
index 2ca87e9edc62..a65117637160 100755
|
||||
--- a/oscilloscope-cmd.py
|
||||
+++ b/oscilloscope-cmd.py
|
||||
@@ -5,20 +5,7 @@
|
||||
# http://git.kernel.org/?p=linux/kernel/git/acme/tuna.git;a=tree
|
||||
# For newer versions and to see it integrated with tuna
|
||||
#
|
||||
-# This library is free software; you can redistribute it and/or
|
||||
-# modify it under the terms of the GNU Lesser General Public
|
||||
-# License as published by the Free Software Foundation;
|
||||
-# version 2.1 of the License.
|
||||
-#
|
||||
-# This library is distributed in the hope that it will be useful,
|
||||
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
-# Lesser General Public License for more details.
|
||||
-#
|
||||
-# You should have received a copy of the GNU Lesser General Public
|
||||
-# License along with this library; if not, write to the Free Software
|
||||
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
-# USA
|
||||
+# SPDX-License-Identifier: LGPL-2.1-only
|
||||
|
||||
import getopt
|
||||
import sys
|
||||
diff --git a/setup.py b/setup.py
|
||||
index f3e36529fefb..a00adb9721a8 100755
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/python3
|
||||
+# SPDX-License-Identifier: GPL-2.0-only
|
||||
from distutils.sysconfig import get_python_lib
|
||||
from distutils.core import setup
|
||||
from os.path import isfile, join
|
||||
diff --git a/testuna b/testuna
|
||||
index 4bf91ebdb76f..cb98640c0167 100755
|
||||
--- a/testuna
|
||||
+++ b/testuna
|
||||
@@ -2,7 +2,7 @@
|
||||
# Regression tests for tuna
|
||||
# (c) 2008 Red Hat Inc.
|
||||
# Arnaldo Carvalho de Melo <acme@redhat.com>
|
||||
-# Released under the GPLv2
|
||||
+# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
dprint() {
|
||||
[ -n "$VERBOSE" ] && echo $1
|
||||
@@ -111,21 +111,21 @@ PID=$(ktpidof "watchdog")
|
||||
RTPRIO=$(get_rtprio $PID)
|
||||
POLICY=$(get_policy $PID)
|
||||
POLICY=$(echo ${POLICY:6:1} | tr 'A-Z' 'a-z')
|
||||
-chrt -$POLICY -p $((RTPRIO - 1)) $PID
|
||||
+chrt -$POLICY -p $((RTPRIO - 1)) $PID
|
||||
|
||||
die_if_not_saved 1 'Saving changes to a kernel thread priority'
|
||||
|
||||
-chrt -$POLICY -p $RTPRIO $PID
|
||||
+chrt -$POLICY -p $RTPRIO $PID
|
||||
|
||||
die_if_conf_changed 'Restoring kernel thread priority'
|
||||
|
||||
new_policy=$(echo $POLICY | tr fr rf)
|
||||
|
||||
-chrt -$new_policy -p $RTPRIO $PID
|
||||
+chrt -$new_policy -p $RTPRIO $PID
|
||||
|
||||
die_if_not_saved 1 'Changing kernel thread sched policy'
|
||||
|
||||
-chrt -$POLICY -p $RTPRIO $PID
|
||||
+chrt -$POLICY -p $RTPRIO $PID
|
||||
|
||||
die_if_conf_changed 'Restoring kernel thread sched policy'
|
||||
|
||||
diff --git a/tuna-cmd.py b/tuna-cmd.py
|
||||
index f5dafa739da2..38e7017336a5 100755
|
||||
--- a/tuna-cmd.py
|
||||
+++ b/tuna-cmd.py
|
||||
@@ -5,14 +5,7 @@
|
||||
# Copyright (C) 2008, 2009, 2010, 2011 Red Hat Inc.
|
||||
# Arnaldo Carvalho de Melo <acme@redhat.com>
|
||||
#
|
||||
-# This application is free software; you can redistribute it and/or
|
||||
-# modify it under the terms of the GNU General Public License
|
||||
-# as published by the Free Software Foundation; version 2.
|
||||
-#
|
||||
-# This application is distributed in the hope that it will be useful,
|
||||
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
-# General Public License for more details.
|
||||
+# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
""" tuna - Application Tuning GUI """
|
||||
|
||||
diff --git a/tuna.desktop b/tuna.desktop
|
||||
index 603011f79467..87ca3a35ce63 100644
|
||||
--- a/tuna.desktop
|
||||
+++ b/tuna.desktop
|
||||
@@ -1,3 +1,4 @@
|
||||
+# SPDX-License-Identifier: GPL-2.0-only
|
||||
[Desktop Entry]
|
||||
Name=tuna
|
||||
GenericName=Application Tuner
|
||||
diff --git a/tuna/__init__.py b/tuna/__init__.py
|
||||
index 30924a00cf96..614e3e4c7ed8 100755
|
||||
--- a/tuna/__init__.py
|
||||
+++ b/tuna/__init__.py
|
||||
@@ -4,4 +4,4 @@ Copyright (c) 2008, 2009 Red Hat Inc.
|
||||
Application Tuning GUI
|
||||
"""
|
||||
__author__ = "Arnaldo Carvalho de Melo <acme@redhat.com>"
|
||||
-__license__ = "GPLv2 License"
|
||||
+__license__ = "SPDX-License-Identifier: GPL-2.0-only"
|
||||
diff --git a/tuna/config.py b/tuna/config.py
|
||||
index 09d26dd87029..63c9f23bb09b 100644
|
||||
--- a/tuna/config.py
|
||||
+++ b/tuna/config.py
|
||||
@@ -1,3 +1,5 @@
|
||||
+# SPDX-License-Identifier: GPL-2.0-only
|
||||
+
|
||||
import io
|
||||
import os
|
||||
import re
|
||||
diff --git a/tuna/gui/__init__.py b/tuna/gui/__init__.py
|
||||
index ad1191c13d8d..a40f86292e6f 100755
|
||||
--- a/tuna/gui/__init__.py
|
||||
+++ b/tuna/gui/__init__.py
|
||||
@@ -1,3 +1,5 @@
|
||||
+# SPDX-License-Identifier: GPL-2.0-only
|
||||
+
|
||||
"""
|
||||
Copyright (c) 2009 Red Hat Inc.
|
||||
|
||||
diff --git a/tuna/gui/commonview.py b/tuna/gui/commonview.py
|
||||
index cc8f913819a2..8089ed154dae 100644
|
||||
--- a/tuna/gui/commonview.py
|
||||
+++ b/tuna/gui/commonview.py
|
||||
@@ -1,3 +1,5 @@
|
||||
+# SPDX-License-Identifier: GPL-2.0-only
|
||||
+
|
||||
from gi.repository import Gtk
|
||||
from tuna import tuna
|
||||
|
||||
diff --git a/tuna/gui/cpuview.py b/tuna/gui/cpuview.py
|
||||
index cc3f0f905ae7..844705a4bb21 100755
|
||||
--- a/tuna/gui/cpuview.py
|
||||
+++ b/tuna/gui/cpuview.py
|
||||
@@ -1,5 +1,6 @@
|
||||
# -*- python -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
+# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
from functools import reduce
|
||||
|
||||
diff --git a/tuna/gui/irqview.py b/tuna/gui/irqview.py
|
||||
index 5143d6dc0df5..e89fb70197fc 100755
|
||||
--- a/tuna/gui/irqview.py
|
||||
+++ b/tuna/gui/irqview.py
|
||||
@@ -1,5 +1,6 @@
|
||||
# -*- python -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
+# SPDX-License-Identifier: GPL-2.0-only
|
||||
from tuna import tuna, gui
|
||||
import procfs
|
||||
from gi.repository import Gdk
|
||||
diff --git a/tuna/gui/procview.py b/tuna/gui/procview.py
|
||||
index 440a289a1b29..78d5f573dd49 100755
|
||||
--- a/tuna/gui/procview.py
|
||||
+++ b/tuna/gui/procview.py
|
||||
@@ -1,3 +1,4 @@
|
||||
+# SPDX-License-Identifier: GPL-2.0-only
|
||||
import re
|
||||
import os
|
||||
import tuna.tuna_sched as tuna_sched
|
||||
diff --git a/tuna/gui/profileview.py b/tuna/gui/profileview.py
|
||||
index 26f58cbc8f4f..7570bc0e57ce 100644
|
||||
--- a/tuna/gui/profileview.py
|
||||
+++ b/tuna/gui/profileview.py
|
||||
@@ -1,3 +1,4 @@
|
||||
+# SPDX-License-Identifier: GPL-2.0-only
|
||||
import os
|
||||
import shutil
|
||||
import gi
|
||||
diff --git a/tuna/gui/util.py b/tuna/gui/util.py
|
||||
index ec368ae4b2c9..92bd368179cc 100644
|
||||
--- a/tuna/gui/util.py
|
||||
+++ b/tuna/gui/util.py
|
||||
@@ -1,3 +1,4 @@
|
||||
+# SPDX-License-Identifier: GPL-2.0-only
|
||||
import errno
|
||||
import os
|
||||
import gi
|
||||
diff --git a/tuna/new_eth.py b/tuna/new_eth.py
|
||||
index 98f9179d5695..e2888d4cef36 100755
|
||||
--- a/tuna/new_eth.py
|
||||
+++ b/tuna/new_eth.py
|
||||
@@ -1,4 +1,5 @@
|
||||
# Copyright (C) 2022 John Kacur
|
||||
+# SPDX-License-Identifier: GPL-2.0-only
|
||||
""" A few functions similar to ethtool """
|
||||
import os
|
||||
import socket
|
||||
diff --git a/tuna/oscilloscope.py b/tuna/oscilloscope.py
|
||||
index 317fe4554c60..a44ace53ec27 100755
|
||||
--- a/tuna/oscilloscope.py
|
||||
+++ b/tuna/oscilloscope.py
|
||||
@@ -8,20 +8,7 @@
|
||||
# http://git.kernel.org/?p=linux/kernel/git/acme/tuna.git;a=tree
|
||||
# For newer versions and to see it integrated with tuna
|
||||
#
|
||||
-# This library is free software; you can redistribute it and/or
|
||||
-# modify it under the terms of the GNU Lesser General Public
|
||||
-# License as published by the Free Software Foundation;
|
||||
-# version 2.1 of the License.
|
||||
-#
|
||||
-# This library is distributed in the hope that it will be useful,
|
||||
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
-# Lesser General Public License for more details.
|
||||
-#
|
||||
-# You should have received a copy of the GNU Lesser General Public
|
||||
-# License along with this library; if not, write to the Free Software
|
||||
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
-# USA
|
||||
+# SPDX-License-Identifier: LGPL-2.1-only
|
||||
|
||||
import os
|
||||
import sys
|
||||
diff --git a/tuna/sysfs.py b/tuna/sysfs.py
|
||||
index 1c903e106a44..cd2377a8df26 100755
|
||||
--- a/tuna/sysfs.py
|
||||
+++ b/tuna/sysfs.py
|
||||
@@ -1,5 +1,7 @@
|
||||
# -*- python -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
+# SPDX-License-Identifier: GPL-2.0-only
|
||||
+
|
||||
"""
|
||||
classes for /sys/devices/system/cpu/
|
||||
so we can get topology information and do CPU hotplug operations
|
||||
diff --git a/tuna/tuna.py b/tuna/tuna.py
|
||||
index e64211b88fc3..464d7f73212e 100755
|
||||
--- a/tuna/tuna.py
|
||||
+++ b/tuna/tuna.py
|
||||
@@ -1,5 +1,6 @@
|
||||
# -*- python -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
+# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
import copy
|
||||
import errno
|
||||
@@ -649,12 +650,12 @@ def generate_rtgroups(filename, kthreads, nr_cpus):
|
||||
f.write('''# Generated by tuna
|
||||
#
|
||||
# Use it with rtctl:
|
||||
-#
|
||||
+#
|
||||
# rtctl --file %s reset
|
||||
#
|
||||
# Please use 'man rtctl' for more operations
|
||||
#
|
||||
-# Associate processes into named groups with default priority and
|
||||
+# Associate processes into named groups with default priority and
|
||||
# scheduling policy.
|
||||
#
|
||||
# Format is: <groupname>:<sched>:<prio>:<regex>
|
||||
@@ -663,7 +664,7 @@ def generate_rtgroups(filename, kthreads, nr_cpus):
|
||||
# sched must be one of: 'f' (fifo)
|
||||
# 'b' (batch)
|
||||
# 'r' (round-robin)
|
||||
-# 'o' (other)
|
||||
+# 'o' (other)
|
||||
# '*' (leave alone)
|
||||
# regex is an awk regex
|
||||
#
|
||||
diff --git a/tuna/tuna_gui.py b/tuna/tuna_gui.py
|
||||
index 459f90303ed5..cefee4a57697 100755
|
||||
--- a/tuna/tuna_gui.py
|
||||
+++ b/tuna/tuna_gui.py
|
||||
@@ -1,5 +1,6 @@
|
||||
# -*- python -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
+# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
import sys
|
||||
import os
|
||||
diff --git a/tuna/tuna_sched.py b/tuna/tuna_sched.py
|
||||
index de9846bb5fae..1051983e53f9 100644
|
||||
--- a/tuna/tuna_sched.py
|
||||
+++ b/tuna/tuna_sched.py
|
||||
@@ -1,5 +1,6 @@
|
||||
#!/usr/bin/python3
|
||||
# Copyright (C) 2022 John Kacur
|
||||
+# SPDX-License-Identifier: GPL-2.0-only
|
||||
"""
|
||||
Functions to translate a scheduling policy into either a string name or an
|
||||
equivalent integer
|
||||
--
|
||||
2.41.0
|
||||
|
@ -1,175 +0,0 @@
|
||||
From 9dfaafe278f6cccf6911cddef413dc59e87722e7 Mon Sep 17 00:00:00 2001
|
||||
From: Leah Leshchinsky <lleshchi@redhat.com>
|
||||
Date: Wed, 16 Nov 2022 10:38:10 -0500
|
||||
Subject: [PATCH] tuna: Adapt show_threads cgroup output to terminal size
|
||||
|
||||
Passing the --cgroup flag for the --show_threads command currently displays
|
||||
long cgroup strings on the thread output and decreases readability.
|
||||
|
||||
Adapt the show_threads output to account for output string and terminal
|
||||
size, and format output accordingly to improve readability. Add
|
||||
--spaced flag to --show_threads to print cgroups spacing in
|
||||
between thread outputs.
|
||||
|
||||
Signed-off-by: Leah Leshchinsky <lleshchi@redhat.com>
|
||||
|
||||
---
|
||||
target branch: getopt
|
||||
|
||||
Signed-off-by: Leah Leshchinsky <lleshchi@redhat.com>
|
||||
|
||||
diff --git a/docs/tuna.8 b/docs/tuna.8
|
||||
index 3a06556..218ba14 100644
|
||||
--- a/docs/tuna.8
|
||||
+++ b/docs/tuna.8
|
||||
@@ -80,6 +80,9 @@ Disable display of selected CPUs in \fB--gui\fR. Requires \fB-c\R.
|
||||
\fB\-G\fR, \fB\-\-cgroup\fR
|
||||
Display the processes with the type of cgroups they are in. Requires \fB-P\R.
|
||||
.TP
|
||||
+\fB\-z\fR, \fB\-\-spaced\fR
|
||||
+Display spaced view for cgroups. Requires \fB-G\R.
|
||||
+.TP
|
||||
\fB\-K\fR, \fB\-\-no_kthreads\fR
|
||||
Operations will not affect kernel threads.
|
||||
.TP
|
||||
diff --git a/tuna-cmd.py b/tuna-cmd.py
|
||||
index 75b63da..54dc567 100755
|
||||
--- a/tuna-cmd.py
|
||||
+++ b/tuna-cmd.py
|
||||
@@ -99,6 +99,8 @@ def usage():
|
||||
print(fmt % ('-g, --gui', _('Start the GUI')))
|
||||
print(fmt % ('-G, --cgroup',
|
||||
_('Display the processes with the type of cgroups they are in')))
|
||||
+ print(fmt % ('-z, --spaced',
|
||||
+ "Display spaced view for cgroups"))
|
||||
print(fmt % ('-c, --cpus=' + _('CPU-LIST'), _('%(cpulist)s affected by commands') %
|
||||
{"cpulist": _('CPU-LIST')}))
|
||||
print(fmt % ('-C, --affect_children',
|
||||
@@ -249,7 +251,7 @@ def format_affinity(affinity):
|
||||
return ",".join(str(hex(a)) for a in procfs.hexbitmask(affinity, get_nr_cpus()))
|
||||
|
||||
def ps_show_thread(pid, affect_children, ps, has_ctxt_switch_info, sock_inodes,
|
||||
- sock_inode_re, cgroups):
|
||||
+ sock_inode_re, cgroups, columns=None, compact=True):
|
||||
global irqs
|
||||
try:
|
||||
affinity = format_affinity(os.sched_getaffinity(pid))
|
||||
@@ -286,10 +288,20 @@ def ps_show_thread(pid, affect_children, ps, has_ctxt_switch_info, sock_inodes,
|
||||
nonvoluntary_ctxt_switches)
|
||||
|
||||
# Indent affected children
|
||||
- print(" %-5d " % pid if affect_children else " %-5d" % pid, end=' ')
|
||||
- print("%6s %5d %8s%s %15s %s" % (sched, rtprio, affinity,
|
||||
- ctxt_switch_info, cmd, users), end=' ')
|
||||
- print(" %9s" % cgout if cgroups else "")
|
||||
+ s1 = " %-5d " % pid if affect_children else " %-5d" % pid
|
||||
+ print(s1, end=' ')
|
||||
+ s2 = "%6s %5d %8s%s %15s %s" % (sched, rtprio, affinity,
|
||||
+ ctxt_switch_info, cmd, users)
|
||||
+ print(s2, end=' ')
|
||||
+
|
||||
+ if cgroups:
|
||||
+ length = int(columns) - len(s1 + " ") - len(s2 + " ")
|
||||
+ if len(" %9s" % cgout) <= length:
|
||||
+ print("%s" % cgout)
|
||||
+ else:
|
||||
+ print("\n %s" % cgout + ("" if compact else "\n"))
|
||||
+ else:
|
||||
+ print()
|
||||
|
||||
if sock_inodes:
|
||||
ps_show_sockets(pid, ps, sock_inodes, sock_inode_re,
|
||||
@@ -298,12 +310,12 @@ def ps_show_thread(pid, affect_children, ps, has_ctxt_switch_info, sock_inodes,
|
||||
for tid in list(ps[pid]["threads"].keys()):
|
||||
ps_show_thread(tid, False, ps[pid]["threads"],
|
||||
has_ctxt_switch_info,
|
||||
- sock_inodes, sock_inode_re, cgroups)
|
||||
+ sock_inodes, sock_inode_re, cgroups, columns, compact)
|
||||
|
||||
|
||||
def ps_show(ps, affect_children, thread_list, cpu_list,
|
||||
irq_list_numbers, show_uthreads, show_kthreads,
|
||||
- has_ctxt_switch_info, sock_inodes, sock_inode_re, cgroups):
|
||||
+ has_ctxt_switch_info, sock_inodes, sock_inode_re, cgroups, compact):
|
||||
|
||||
ps_list = []
|
||||
for pid in list(ps.keys()):
|
||||
@@ -340,9 +352,14 @@ def ps_show(ps, affect_children, thread_list, cpu_list,
|
||||
|
||||
ps_list.sort()
|
||||
|
||||
+ # Width of terminal in columns
|
||||
+ columns = None
|
||||
+ if cgroups:
|
||||
+ _, columns = os.popen('stty size', 'r').read().split()
|
||||
+
|
||||
for pid in ps_list:
|
||||
ps_show_thread(pid, affect_children, ps, has_ctxt_switch_info,
|
||||
- sock_inodes, sock_inode_re, cgroups)
|
||||
+ sock_inodes, sock_inode_re, cgroups, columns, compact)
|
||||
|
||||
|
||||
def load_socktype(socktype, inodes):
|
||||
@@ -363,7 +380,7 @@ def load_sockets():
|
||||
|
||||
|
||||
def do_ps(thread_list, cpu_list, irq_list, show_uthreads, show_kthreads,
|
||||
- affect_children, show_sockets, cgroups):
|
||||
+ affect_children, show_sockets, cgroups, compact):
|
||||
ps = procfs.pidstats()
|
||||
if affect_children:
|
||||
ps.reload_threads()
|
||||
@@ -380,7 +397,7 @@ def do_ps(thread_list, cpu_list, irq_list, show_uthreads, show_kthreads,
|
||||
ps_show_header(has_ctxt_switch_info, cgroups)
|
||||
ps_show(ps, affect_children, thread_list,
|
||||
cpu_list, irq_list, show_uthreads, show_kthreads,
|
||||
- has_ctxt_switch_info, sock_inodes, sock_inode_re, cgroups)
|
||||
+ has_ctxt_switch_info, sock_inodes, sock_inode_re, cgroups, compact)
|
||||
except IOError:
|
||||
# 'tuna -P | head' for instance
|
||||
pass
|
||||
@@ -535,13 +552,13 @@ def main():
|
||||
|
||||
i18n_init()
|
||||
try:
|
||||
- short = "a:c:dDCfgGhiIKlmNp:PQq:r:R:s:S:t:UvWxL:"
|
||||
+ short = "a:c:dDCfgGzhiIKlmNp:PQq:r:R:s:S:t:UvWxL:"
|
||||
long = ["cpus=", "affect_children", "filter", "gui", "help",
|
||||
"isolate", "include", "no_kthreads", "move", "nohz_full",
|
||||
"show_sockets", "priority=", "show_threads",
|
||||
"show_irqs", "irqs=",
|
||||
"save=", "sockets=", "threads=", "no_uthreads",
|
||||
- "version", "what_is", "spread", "cgroup", "config_file_apply=",
|
||||
+ "version", "what_is", "spread", "cgroup", "spaced", "config_file_apply=",
|
||||
"config_file_list", "run=", "refresh=", "disable_perf", "logging=", "debug"]
|
||||
if have_inet_diag:
|
||||
short += "n"
|
||||
@@ -556,6 +573,7 @@ def main():
|
||||
kthreads = True
|
||||
uthreads = True
|
||||
cgroups = False
|
||||
+ compact = True
|
||||
cpu_list = None
|
||||
debug = False
|
||||
irq_list = None
|
||||
@@ -623,6 +641,8 @@ def main():
|
||||
affect_children = True
|
||||
elif o in ("-G", "--cgroup"):
|
||||
cgroups = True
|
||||
+ elif o in ("-z", "--spaced"):
|
||||
+ compact = False
|
||||
elif o in ("-t", "--threads"):
|
||||
# The -t - will reset thread list
|
||||
if a == '-':
|
||||
@@ -691,7 +711,7 @@ def main():
|
||||
if thread_list_str or irq_list_str:
|
||||
continue
|
||||
do_ps(thread_list, cpu_list, irq_list, uthreads,
|
||||
- kthreads, affect_children, show_sockets, cgroups)
|
||||
+ kthreads, affect_children, show_sockets, cgroups, compact)
|
||||
elif o in ("-Q", "--show_irqs"):
|
||||
# If the user specified IRQ names that weren't
|
||||
# resolved to IRQs, don't show all IRQs.
|
||||
--
|
||||
2.38.1
|
||||
|
@ -0,0 +1,49 @@
|
||||
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,34 +0,0 @@
|
||||
From f2763aaed8f421bcf266a3122a84c41a7441a5d9 Mon Sep 17 00:00:00 2001
|
||||
From: John Kacur <jkacur@redhat.com>
|
||||
Date: Mon, 11 Dec 2023 16:29:02 -0500
|
||||
Subject: [PATCH] tuna: Don't start the gui if a display is not available
|
||||
|
||||
This is intended for the getopt branch of tuna
|
||||
|
||||
Don't start the gui if a display is not available.
|
||||
|
||||
Signed-off-by: John Kacur <jkacur@redhat.com>
|
||||
---
|
||||
tuna-cmd.py | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/tuna-cmd.py b/tuna-cmd.py
|
||||
index 38e7017336a5..ff2920f06d6f 100755
|
||||
--- a/tuna-cmd.py
|
||||
+++ b/tuna-cmd.py
|
||||
@@ -821,6 +821,12 @@ def main():
|
||||
sys.exit(2)
|
||||
|
||||
if run_gui:
|
||||
+ # Don't try to start the gui if no display is available
|
||||
+ display = os.getenv("DISPLAY")
|
||||
+ if not display:
|
||||
+ usage()
|
||||
+ return
|
||||
+
|
||||
try:
|
||||
from tuna import tuna_gui
|
||||
except ImportError:
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,52 +0,0 @@
|
||||
From 3f1fbb092f5ef07d04fef7ddec9e538f36d84450 Mon Sep 17 00:00:00 2001
|
||||
From: John Kacur <jkacur@redhat.com>
|
||||
Date: Fri, 2 Sep 2022 11:55:07 -0400
|
||||
Subject: [PATCH] tuna: Fix matching irqs in ps_show_thread
|
||||
|
||||
The new format to match irqs is "irqs/"
|
||||
We already test this when we call is_irq_thread(cmd):
|
||||
|
||||
With this fix if you do
|
||||
|
||||
tuna show_threads
|
||||
|
||||
You will get nic information that was previously missed such as
|
||||
|
||||
986 FIFO 50 9 69286 2 irq/164-iwlwifi:default_que
|
||||
ue iwlwifi:default_queue
|
||||
|
||||
Signed-off-by: John Kacur <jkacur@redhat.com>
|
||||
---
|
||||
tuna-cmd.py | 15 +++++----------
|
||||
1 file changed, 5 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/tuna-cmd.py b/tuna-cmd.py
|
||||
index b13b25b8a801..80e27523acc6 100755
|
||||
--- a/tuna-cmd.py
|
||||
+++ b/tuna-cmd.py
|
||||
@@ -351,17 +351,12 @@ def ps_show_thread(pid, affect_children, ps, has_ctxt_switch_info, sock_inodes,
|
||||
try:
|
||||
if not irqs:
|
||||
irqs = procfs.interrupts()
|
||||
- if cmd[:4] == "IRQ-":
|
||||
- users = irqs[tuna.irq_thread_number(cmd)]["users"]
|
||||
- for u in users:
|
||||
- if u in get_nics():
|
||||
- users[users.index(u)] = "%s(%s)" % (
|
||||
- u, ethtool.get_module(u))
|
||||
- users = ",".join(users)
|
||||
- else:
|
||||
- u = cmd[cmd.find('-') + 1:]
|
||||
+ users = irqs[tuna.irq_thread_number(cmd)]["users"]
|
||||
+ for u in users:
|
||||
if u in get_nics():
|
||||
- users = ethtool.get_module(u)
|
||||
+ users[users.index(u)] = "%s(%s)" % (
|
||||
+ u, ethtool.get_module(u))
|
||||
+ users = ",".join(users)
|
||||
except:
|
||||
users = "Not found in /proc/interrupts!"
|
||||
|
||||
--
|
||||
2.37.3
|
||||
|
@ -1,42 +0,0 @@
|
||||
From 613bc73f6ad821db682e9efc097c29af9cb40858 Mon Sep 17 00:00:00 2001
|
||||
From: Leah Leshchinsky <lleshchi@redhat.com>
|
||||
Date: Wed, 23 Nov 2022 14:14:36 -0500
|
||||
Subject: [PATCH] tuna: Fix --show_threads --cgroup without a term
|
||||
|
||||
When tuna --show_threads --cgroups is run without a term,
|
||||
provide a default column size of 80 to fix a traceback
|
||||
that occurred when querying the terminal size.
|
||||
|
||||
Signed-off-by: Leah Leshchinsky <lleshchi@redhat.com>
|
||||
- Edited the commit title
|
||||
- Edited the description
|
||||
Signed-off-by: John Kacur <jkacur@redhat.com>
|
||||
|
||||
diff --git a/tuna-cmd.py b/tuna-cmd.py
|
||||
index 54dc567..f5dafa7 100755
|
||||
--- a/tuna-cmd.py
|
||||
+++ b/tuna-cmd.py
|
||||
@@ -31,6 +31,7 @@ import procfs
|
||||
from tuna import tuna, sysfs
|
||||
import logging
|
||||
import time
|
||||
+import shutil
|
||||
|
||||
def get_loglevel(level):
|
||||
if level.isdigit() and int(level) in range(0,5):
|
||||
@@ -353,9 +354,10 @@ def ps_show(ps, affect_children, thread_list, cpu_list,
|
||||
ps_list.sort()
|
||||
|
||||
# Width of terminal in columns
|
||||
- columns = None
|
||||
+ columns = 80
|
||||
if cgroups:
|
||||
- _, columns = os.popen('stty size', 'r').read().split()
|
||||
+ if os.isatty(sys.stdout.fileno()):
|
||||
+ columns = shutil.get_terminal_size().columns
|
||||
|
||||
for pid in ps_list:
|
||||
ps_show_thread(pid, affect_children, ps, has_ctxt_switch_info,
|
||||
--
|
||||
2.38.1
|
||||
|
@ -0,0 +1,61 @@
|
||||
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
|
||||
|
@ -0,0 +1,55 @@
|
||||
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
|
||||
|
@ -0,0 +1,40 @@
|
||||
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,220 +0,0 @@
|
||||
From 2d0f78751760bcc737bc4b3530d77b05aaa1c286 Mon Sep 17 00:00:00 2001
|
||||
From: John Kacur <jkacur@redhat.com>
|
||||
Date: Wed, 18 Oct 2023 10:54:49 -0400
|
||||
Subject: [PATCH 2/2] tuna: Remove spec file from git
|
||||
|
||||
The specfile should be maintained in the distribution and not upstream
|
||||
The specfile that is upstream is largely unmaintained anyway.
|
||||
This change also guts the Makefile which uses the specfile.
|
||||
Most of the functionality in the Makefile is available through tools
|
||||
such as rpmbuild anyway. Leaving the Makefile in place for a few
|
||||
minor things like makeing tagfiles
|
||||
|
||||
Signed-off-by: John Kacur <jkacur@redhat.com>
|
||||
---
|
||||
Makefile | 39 +------------
|
||||
rpm/SPECS/tuna.spec | 137 --------------------------------------------
|
||||
2 files changed, 3 insertions(+), 173 deletions(-)
|
||||
delete mode 100644 rpm/SPECS/tuna.spec
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index a3d71d2de896..a55821a8f908 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,42 +1,8 @@
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
-PACKAGE := tuna
|
||||
-VERSION := $(shell rpm -q --qf '%{VERSION} ' --specfile rpm/SPECS/$(PACKAGE).spec | cut -d' ' -f1)
|
||||
-
|
||||
-rpmdirs:
|
||||
- @[ -d rpm/BUILD ] || mkdir rpm/BUILD
|
||||
- @[ -d rpm/RPMS ] || mkdir rpm/RPMS
|
||||
- @[ -d rpm/SRPMS ] || mkdir rpm/SRPMS
|
||||
- @[ -d rpm/SOURCES ] || mkdir rpm/SOURCES
|
||||
-
|
||||
-bz2: rpmdirs
|
||||
- git archive --format=tar --prefix=$(PACKAGE)-$(VERSION)/ HEAD | \
|
||||
- bzip2 -9 > rpm/SOURCES/$(PACKAGE)-$(VERSION).tar.bz2
|
||||
-
|
||||
-rpm: bz2 rpmdirs
|
||||
- rpmbuild -ba --define "_topdir $(PWD)/rpm" rpm/SPECS/$(PACKAGE).spec
|
||||
-
|
||||
-bz2dev: rpmdirs
|
||||
- @mkdir -p /tmp/$(PACKAGE)-$(VERSION)
|
||||
- @tar cf - `cat MANIFEST` | (cd /tmp/$(PACKAGE)-$(VERSION) ; tar xf -)
|
||||
- @(cd /tmp; tar cf - $(PACKAGE)-$(VERSION)) | bzip2 -9 > rpm/SOURCES/$(PACKAGE)-$(VERSION).tar.bz2
|
||||
-
|
||||
-rpmdev: bz2dev rpmdirs
|
||||
- rpmbuild -ba --define "_topdir $(PWD)/rpm" rpm/SPECS/$(PACKAGE).spec
|
||||
-
|
||||
-po/$(PACKAGE).pot:
|
||||
- xgettext -k_ -kN_ -f po/POTFILES.in -o $@
|
||||
-
|
||||
-po/%.po: po/$(PACKAGE).pot
|
||||
- msgmerge --suffix=.old -U $@ $< && rm -f $@.old
|
||||
-
|
||||
-rpmclean:
|
||||
- @rm -f rpm/RPMS/*/$(PACKAGE)-$(VERSION)-*.rpm
|
||||
- @rm -f rpm/SRPMS/$(PACKAGE)-$(VERSION)-*.src.rpm
|
||||
- @rm -f rpm/SOURCES/$(PACKAGE)-$(VERSION).tar.bz2
|
||||
- @rm -rf rpm/BUILD/$(PACKAGE)-$(VERSION)*
|
||||
|
||||
+.PHONY: pyclean
|
||||
pyclean:
|
||||
@find . -type f \( -name \*~ -o -name \*.pyc \) -delete
|
||||
|
||||
@@ -52,4 +18,5 @@ cleantags:
|
||||
cleanlogs:
|
||||
rm -rf tuna-20*
|
||||
|
||||
-clean: pyclean rpmclean
|
||||
+.PHONY: clean
|
||||
+clean: pyclean
|
||||
diff --git a/rpm/SPECS/tuna.spec b/rpm/SPECS/tuna.spec
|
||||
deleted file mode 100644
|
||||
index eca96c833265..000000000000
|
||||
--- a/rpm/SPECS/tuna.spec
|
||||
+++ /dev/null
|
||||
@@ -1,137 +0,0 @@
|
||||
-Name: tuna
|
||||
-Version: 0.15
|
||||
-Release: 1%{?dist}
|
||||
-License: GPLv2
|
||||
-Summary: Application tuning GUI & command line utility
|
||||
-Group: Applications/System
|
||||
-Source: http://userweb.kernel.org/~acme/tuna/%{name}-%{version}.tar.bz2
|
||||
-URL: http://userweb.kernel.org/~acme/tuna/
|
||||
-BuildArch: noarch
|
||||
-BuildRequires: python-devel, gettext, desktop-file-utils
|
||||
-Requires: python-ethtool
|
||||
-Requires: python-linux-procfs >= 0.6
|
||||
-# This really should be a Suggests...
|
||||
-# Requires: python-inet_diag
|
||||
-BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
||||
-
|
||||
-%description
|
||||
-Provides interface for changing scheduler and IRQ tunables, at whole CPU and at
|
||||
-per thread/IRQ level. Allows isolating CPUs for use by a specific application
|
||||
-and moving threads and interrupts to a CPU by just dragging and dropping them.
|
||||
-Operations can be done on CPU sockets, understanding CPU topology.
|
||||
-
|
||||
-Can be used as a command line utility without requiring the GUI libraries to be
|
||||
-installed.
|
||||
-
|
||||
-%package -n oscilloscope
|
||||
-Summary: Generic graphical signal plotting tool
|
||||
-Group: Applications/System
|
||||
-Requires: python-matplotlib
|
||||
-Requires: numpy
|
||||
-Requires: pygtk2
|
||||
-Requires: tuna = %{version}-%{release}
|
||||
-
|
||||
-%description -n oscilloscope
|
||||
-Plots stream of values read from standard input on the screen together with
|
||||
-statistics and a histogram.
|
||||
-
|
||||
-Allows to instantly see how a signal generator, such as cyclictest, signaltest
|
||||
-or even ping, reacts when, for instance, its scheduling policy or real time
|
||||
-priority is changed, be it using tuna or plain chrt & taskset.
|
||||
-
|
||||
-%prep
|
||||
-%setup -q
|
||||
-
|
||||
-%build
|
||||
-%{python3} setup.py build
|
||||
-
|
||||
-%install
|
||||
-rm -rf %{buildroot}
|
||||
-%{python3} setup.py install --skip-build --root %{buildroot}
|
||||
-mkdir -p %{buildroot}/%{_sysconfdir}/tuna/
|
||||
-mkdir -p %{buildroot}/{%{_bindir},%{_datadir}/tuna/help/kthreads,%{_mandir}/man8}
|
||||
-mkdir -p %{buildroot}/%{_datadir}/polkit-1/actions/
|
||||
-install -p -m644 tuna/tuna_gui.glade %{buildroot}/%{_datadir}/tuna/
|
||||
-install -p -m755 tuna-cmd.py %{buildroot}/%{_bindir}/tuna
|
||||
-install -p -m755 oscilloscope-cmd.py %{buildroot}/%{_bindir}/oscilloscope
|
||||
-install -p -m644 help/kthreads/* %{buildroot}/%{_datadir}/tuna/help/kthreads/
|
||||
-install -p -m644 docs/tuna.8 %{buildroot}/%{_mandir}/man8/
|
||||
-install -p -m644 etc/tuna/example.conf %{buildroot}/%{_sysconfdir}/tuna/
|
||||
-install -p -m644 etc/tuna.conf %{buildroot}/%{_sysconfdir}/
|
||||
-install -p -m644 org.tuna.policy %{buildroot}/%{_datadir}/polkit-1/actions/
|
||||
-desktop-file-install --dir=%{buildroot}/%{_datadir}/applications tuna.desktop
|
||||
-
|
||||
-# l10n-ed message catalogues
|
||||
-for lng in `cat po/LINGUAS`; do
|
||||
- po=po/"$lng.po"
|
||||
- mkdir -p %{buildroot}/%{_datadir}/locale/${lng}/LC_MESSAGES
|
||||
- msgfmt $po -o %{buildroot}/%{_datadir}/locale/${lng}/LC_MESSAGES/%{name}.mo
|
||||
-done
|
||||
-
|
||||
-%find_lang %name
|
||||
-
|
||||
-%clean
|
||||
-rm -rf %{buildroot}
|
||||
-
|
||||
-%files -f %{name}.lang
|
||||
-%defattr(-,root,root,-)
|
||||
-%doc ChangeLog
|
||||
-%if "%{python_ver}" >= "2.5"
|
||||
-%{python2_sitelib}/*.egg-info
|
||||
-%endif
|
||||
-%{_bindir}/tuna
|
||||
-%{_datadir}/tuna/
|
||||
-%{python3_sitelib}/tuna/
|
||||
-%{_mandir}/man8/tuna.8*
|
||||
-%{_sysconfdir}/tuna.conf
|
||||
-%{_sysconfdir}/tuna/*
|
||||
-%{_datadir}/polkit-1/actions/org.tuna.policy
|
||||
-%{_datadir}/applications/tuna.desktop
|
||||
-
|
||||
-%files -n oscilloscope
|
||||
-%defattr(-,root,root,-)
|
||||
-%{_bindir}/oscilloscope
|
||||
-%doc docs/oscilloscope+tuna.html
|
||||
-%doc docs/oscilloscope+tuna.pdf
|
||||
-
|
||||
-%changelog
|
||||
-* Fri Feb 1 2013 Arnaldo Carvalho de Melo <acme@redhat.com> - 0.10.4-1
|
||||
-- New upstream release
|
||||
-
|
||||
-* Fri Aug 24 2012 Arnaldo Carvalho de Melo <acme@redhat.com> - 0.10.3-1
|
||||
-- New upstream release
|
||||
-
|
||||
-* Thu Jul 28 2011 Arnaldo Carvalho de Melo <acme@redhat.com> - 0.10.2-1
|
||||
-- New upstream release
|
||||
-
|
||||
-* Wed Feb 23 2011 Arnaldo Carvalho de Melo <acme@redhat.com> - 0.10.1-1
|
||||
-- New upstream release
|
||||
-
|
||||
-* Wed Feb 23 2011 Arnaldo Carvalho de Melo <acme@redhat.com> - 0.10-1
|
||||
-- New upstream release
|
||||
-
|
||||
-* Mon May 17 2010 Arnaldo Carvalho de Melo <acme@redhat.com> - 0.9.3-1
|
||||
-- New upstream release
|
||||
-- Fixes the folowing bugzilla.redhat.com tickets:
|
||||
-- 563355 error in tuna --help output
|
||||
-- 574950 cannot use cpu ranges in the tuna GUI
|
||||
-- 559770 tuna backtrace when moving threads
|
||||
-- 563352 tuna backtrace when no thread list is given for --priority
|
||||
-- 563350 tuna backtrace when scheduler is mis-typed.
|
||||
-
|
||||
-* Thu Nov 12 2009 Arnaldo Carvalho de Melo <acme@redhat.com> - 0.9.2-1
|
||||
-- New upstream release
|
||||
-
|
||||
-* Thu Sep 03 2009 Arnaldo Carvalho de Melo <acme@redhat.com> - 0.9.1-1
|
||||
-- New upstream release
|
||||
-
|
||||
-* Wed Aug 26 2009 Arnaldo Carvalho de Melo <acme@redhat.com> - 0.9-3
|
||||
-- Rewrite the oscilloscope package summary
|
||||
-- Remove the shebang in tuna/oscilloscope.py
|
||||
-
|
||||
-* Mon Aug 17 2009 Arnaldo Carvalho de Melo <acme@redhat.com> - 0.9-2
|
||||
-- Use install -p
|
||||
-- Add BuildRequires for gettext
|
||||
-
|
||||
-* Fri Jul 10 2009 Arnaldo Carvalho de Melo <acme@redhat.com> - 0.9-1
|
||||
-- Fedora package reviewing changes: introduce ChangeLog file
|
||||
--
|
||||
2.41.0
|
||||
|
@ -1,104 +0,0 @@
|
||||
From ff1963daf4d5a23e5f9476710e983ab781210608 Mon Sep 17 00:00:00 2001
|
||||
From: John Kacur <jkacur@redhat.com>
|
||||
Date: Tue, 27 Sep 2022 12:59:54 -0400
|
||||
Subject: [PATCH 1/2] tuna: Replace python_ethtool with builtin funtionality
|
||||
|
||||
This patch replaces the dependency on python_ethtool with some
|
||||
simplified functions to achieve the same result.
|
||||
|
||||
Reviewed-by: Federico Pellegrin <fede@evolware.org>
|
||||
- return 'tun' only if tun_flags exists
|
||||
Signed-off-by: John Kacur <jkacur@redhat.com>
|
||||
---
|
||||
tuna-cmd.py | 2 +-
|
||||
tuna/gui/irqview.py | 2 +-
|
||||
tuna/new_eth.py | 37 +++++++++++++++++++++++++++++++++++++
|
||||
tuna/tuna.py | 2 +-
|
||||
4 files changed, 40 insertions(+), 3 deletions(-)
|
||||
create mode 100755 tuna/new_eth.py
|
||||
|
||||
diff --git a/tuna-cmd.py b/tuna-cmd.py
|
||||
index bdaa70ffc156..21a70cf1d37d 100755
|
||||
--- a/tuna-cmd.py
|
||||
+++ b/tuna-cmd.py
|
||||
@@ -25,7 +25,7 @@ import fnmatch
|
||||
import gettext
|
||||
import locale
|
||||
from functools import reduce
|
||||
-import ethtool
|
||||
+import tuna.new_eth as ethtool
|
||||
import tuna.tuna_sched as tuna_sched
|
||||
import procfs
|
||||
from tuna import tuna, sysfs
|
||||
diff --git a/tuna/gui/irqview.py b/tuna/gui/irqview.py
|
||||
index 35fc3fd0b0ca..5143d6dc0df5 100755
|
||||
--- a/tuna/gui/irqview.py
|
||||
+++ b/tuna/gui/irqview.py
|
||||
@@ -7,7 +7,7 @@ from gi.repository import Gtk
|
||||
from gi.repository import GObject
|
||||
import os
|
||||
from functools import reduce
|
||||
-import ethtool
|
||||
+import tuna.new_eth as ethtool
|
||||
import tuna.tuna_sched as tuna_sched
|
||||
|
||||
import gi
|
||||
diff --git a/tuna/new_eth.py b/tuna/new_eth.py
|
||||
new file mode 100755
|
||||
index 000000000000..98f9179d5695
|
||||
--- /dev/null
|
||||
+++ b/tuna/new_eth.py
|
||||
@@ -0,0 +1,37 @@
|
||||
+# Copyright (C) 2022 John Kacur
|
||||
+""" A few functions similar to ethtool """
|
||||
+import os
|
||||
+import socket
|
||||
+
|
||||
+def get_active_devices():
|
||||
+ """ return a list of network devices """
|
||||
+ ret = []
|
||||
+
|
||||
+ for device in socket.if_nameindex():
|
||||
+ ret.append(device[1])
|
||||
+
|
||||
+ return ret
|
||||
+
|
||||
+def get_module(intf):
|
||||
+ """ return the kernel module for the given network interface """
|
||||
+ if intf == 'lo':
|
||||
+ return ""
|
||||
+ myp = f'/sys/class/net/{intf}/device/driver'
|
||||
+ if os.path.exists(myp):
|
||||
+ return os.path.basename(os.readlink(myp))
|
||||
+ if os.path.exists(f'/sys/class/net/{intf}/bridge'):
|
||||
+ return 'bridge'
|
||||
+ if os.path.exists(f'/sys/class/net/{intf}/tun_flags'):
|
||||
+ return 'tun'
|
||||
+ return ""
|
||||
+
|
||||
+if __name__ == "__main__":
|
||||
+ nics = get_active_devices()
|
||||
+ print(f'nics = {nics}')
|
||||
+
|
||||
+ for intf in nics:
|
||||
+ driver = get_module(intf)
|
||||
+ if driver:
|
||||
+ print(f'{intf}, {driver}')
|
||||
+ else:
|
||||
+ print(f'{intf}')
|
||||
diff --git a/tuna/tuna.py b/tuna/tuna.py
|
||||
index 31707c9cb69c..84419c957b1b 100755
|
||||
--- a/tuna/tuna.py
|
||||
+++ b/tuna/tuna.py
|
||||
@@ -9,7 +9,7 @@ import sys
|
||||
import shlex
|
||||
import fnmatch
|
||||
import platform
|
||||
-import ethtool
|
||||
+import tuna.new_eth as ethtool
|
||||
import procfs
|
||||
from procfs import utilist
|
||||
from tuna import help
|
||||
--
|
||||
2.37.3
|
||||
|
@ -1,66 +0,0 @@
|
||||
From e9f60274865475c4e9081ee356ffbc61d1df2ade Mon Sep 17 00:00:00 2001
|
||||
From: Leah Leshchinsky <lleshchi@redhat.com>
|
||||
Date: Wed, 2 Nov 2022 10:57:19 -0400
|
||||
Subject: [PATCH 3/3] tuna: tuna-cmd.py use fstrings
|
||||
|
||||
Add fstrings where possible to improve readabilty
|
||||
|
||||
Due to the discussion regarding dropping the language feature, gettext
|
||||
shorthand _() have been removed.
|
||||
|
||||
Signed-off-by: Leah Leshchinsky <lleshchi@redhat.com>
|
||||
Signed-off-by: John Kacur <jkacur@redhat.com>
|
||||
|
||||
diff --git a/tuna-cmd.py b/tuna-cmd.py
|
||||
index 79e33371837e..75b63da972c2 100755
|
||||
--- a/tuna-cmd.py
|
||||
+++ b/tuna-cmd.py
|
||||
@@ -176,13 +176,16 @@ def thread_help(tid):
|
||||
ps = procfs.pidstats()
|
||||
|
||||
if tid not in ps:
|
||||
- print("tuna: " + _("thread %d doesn't exists!") % tid)
|
||||
+ print(f"tuna: thread {tid} doesn't exist!")
|
||||
return
|
||||
|
||||
pinfo = ps[tid]
|
||||
cmdline = procfs.process_cmdline(pinfo)
|
||||
help, title = tuna.kthread_help_plain_text(tid, cmdline)
|
||||
- print("%s\n\n%s" % (title, _(help)))
|
||||
+ print(title, "\n\n")
|
||||
+ if help.isspace():
|
||||
+ help = "No help description available."
|
||||
+ print(help)
|
||||
|
||||
|
||||
def save(cpu_list, thread_list, filename):
|
||||
@@ -208,7 +211,7 @@ def ps_show_header(has_ctxt_switch_info, cgroups=False):
|
||||
|
||||
def ps_show_sockets(pid, ps, inodes, inode_re, indent=0):
|
||||
header_printed = False
|
||||
- dirname = "/proc/%s/fd" % pid
|
||||
+ dirname = f"/proc/{pid}/fd"
|
||||
try:
|
||||
filenames = os.listdir(dirname)
|
||||
except: # Process died
|
||||
@@ -650,7 +653,7 @@ def main():
|
||||
try:
|
||||
gui_refresh=int(a)
|
||||
except Exception as err:
|
||||
- print("tuna: --refresh %s" % err)
|
||||
+ print(f"tuna: --refresh {err}")
|
||||
sys.exit(2)
|
||||
elif o in ("-d", "--disable_perf"):
|
||||
run_gui = True
|
||||
@@ -679,7 +682,7 @@ def main():
|
||||
try:
|
||||
tuna.threads_set_priority(thread_list, a, affect_children)
|
||||
except OSError as err:
|
||||
- print("tuna: %s" % err)
|
||||
+ print(f"tuna: {err}")
|
||||
sys.exit(2)
|
||||
elif o in ("-P", "--show_threads"):
|
||||
# If the user specified process names that weren't
|
||||
--
|
||||
2.31.1
|
||||
|
@ -1,94 +0,0 @@
|
||||
From 5f90d8b80a259884d3ca2a647fdf9471b7d7091c Mon Sep 17 00:00:00 2001
|
||||
From: Leah Leshchinsky <lleshchi@redhat.com>
|
||||
Date: Mon, 31 Oct 2022 13:15:07 -0400
|
||||
Subject: [PATCH 1/3] tuna: tuna.py use fstrings
|
||||
|
||||
Add fstrings where possible to improve readabilty
|
||||
|
||||
Signed-off-by: Leah Leshchinsky <lleshchi@redhat.com>
|
||||
Signed-off-by: John Kacur <jkacur@redhat.com>
|
||||
|
||||
diff --git a/tuna/tuna.py b/tuna/tuna.py
|
||||
index 84419c957b1b..e64211b88fc3 100755
|
||||
--- a/tuna/tuna.py
|
||||
+++ b/tuna/tuna.py
|
||||
@@ -58,7 +58,7 @@ def iskthread(pid):
|
||||
# in this function, so that they know that the thread vanished and
|
||||
# can act accordingly, removing entries from tree views, etc
|
||||
try:
|
||||
- f = open("/proc/%d/smaps" % pid)
|
||||
+ f = open(f"/proc/{pid}/smaps")
|
||||
except IOError:
|
||||
# Thread has vanished
|
||||
return True
|
||||
@@ -88,7 +88,7 @@ def is_irq_thread(cmd):
|
||||
return cmd[:4] in ("IRQ-", "irq/")
|
||||
|
||||
def threaded_irq_re(irq):
|
||||
- return re.compile("(irq/%s-.+|IRQ-%s)" % (irq, irq))
|
||||
+ return re.compile(f"(irq/{irq}-.+|IRQ-{irq})")
|
||||
|
||||
# FIXME: Move to python-linux-procfs
|
||||
def has_threaded_irqs(ps):
|
||||
@@ -96,10 +96,10 @@ def has_threaded_irqs(ps):
|
||||
return len(ps.find_by_regex(irq_re)) > 0
|
||||
|
||||
def set_irq_affinity_filename(filename, bitmasklist):
|
||||
- pathname = "/proc/irq/%s" % filename
|
||||
+ pathname = f"/proc/irq/{filename}"
|
||||
f = open(pathname, "w")
|
||||
text = ",".join(["%x" % a for a in bitmasklist])
|
||||
- f.write("%s\n" % text)
|
||||
+ f.write(f"{text}\n")
|
||||
try:
|
||||
f.close()
|
||||
except IOError:
|
||||
@@ -225,7 +225,7 @@ def move_threads_to_cpu(cpus, pid_list, set_affinity_warning=None, spread=False)
|
||||
if pid not in ps:
|
||||
continue
|
||||
|
||||
- threads = procfs.pidstats("/proc/%d/task" % pid)
|
||||
+ threads = procfs.pidstats(f"/proc/{pid}/task")
|
||||
for tid in list(threads.keys()):
|
||||
try:
|
||||
curr_affinity = os.sched_getaffinity(tid)
|
||||
@@ -320,11 +320,11 @@ def affinity_remove_cpus(affinity, cpus, nr_cpus):
|
||||
# Should be moved to python_linux_procfs.interrupts, shared with interrupts.parse_affinity, etc.
|
||||
def parse_irq_affinity_filename(filename, nr_cpus):
|
||||
try:
|
||||
- f = open("/proc/irq/%s" % filename)
|
||||
+ f = open(f"/proc/irq/{filename}")
|
||||
except IOError as err:
|
||||
if procfs.is_s390():
|
||||
print("This operation is not supported on s390", file=sys.stderr)
|
||||
- print("tuna: %s" % err, file=sys.stderr)
|
||||
+ print(f"tuna: {err}", file=sys.stderr)
|
||||
sys.exit(2)
|
||||
|
||||
line = f.readline()
|
||||
@@ -627,19 +627,19 @@ def run_command(cmd, policy, rtprio, cpu_list):
|
||||
try:
|
||||
thread_set_priority(pid, policy, rtprio)
|
||||
except (SystemError, OSError) as err:
|
||||
- print("tuna: %s" % err)
|
||||
+ print(f"tuna: {err}")
|
||||
sys.exit(2)
|
||||
if cpu_list:
|
||||
try:
|
||||
os.sched_setaffinity(pid, cpu_list)
|
||||
except (SystemError, OSError) as err:
|
||||
- print("tuna: %s" % err)
|
||||
+ print(f"tuna: {err}")
|
||||
sys.exit(2)
|
||||
|
||||
try:
|
||||
os.execvp(cmd_list[0], cmd_list)
|
||||
except (SystemError, OSError) as err:
|
||||
- print("tuna: %s" % err)
|
||||
+ print(f"tuna: {err}")
|
||||
sys.exit(2)
|
||||
else:
|
||||
os.waitpid(newpid, 0)
|
||||
--
|
||||
2.31.1
|
||||
|
@ -1,26 +0,0 @@
|
||||
From f53f77f73199f398713f8edfdfa417cf8b9e1a74 Mon Sep 17 00:00:00 2001
|
||||
From: Leah Leshchinsky <lleshchi@redhat.com>
|
||||
Date: Fri, 28 Oct 2022 13:14:04 -0400
|
||||
Subject: [PATCH 2/3] tuna: tuna_gui.py use fstrings
|
||||
|
||||
Add fstrings where possible to improve readabilty
|
||||
|
||||
Signed-off-by: Leah Leshchinsky <lleshchi@redhat.com>
|
||||
Signed-off-by: John Kacur <jkacur@redhat.com>
|
||||
|
||||
diff --git a/tuna/tuna_gui.py b/tuna/tuna_gui.py
|
||||
index f1f2caacbcba..459f90303ed5 100755
|
||||
--- a/tuna/tuna_gui.py
|
||||
+++ b/tuna/tuna_gui.py
|
||||
@@ -33,7 +33,7 @@ class main_gui:
|
||||
if self.check_root():
|
||||
sys.exit(1)
|
||||
for dir in tuna_glade_dirs:
|
||||
- tuna_glade = "%s/tuna_gui.glade" % dir
|
||||
+ tuna_glade = f"{dir}/tuna_gui.glade"
|
||||
if os.access(tuna_glade, os.F_OK):
|
||||
break
|
||||
self.wtree = Gtk.Builder()
|
||||
--
|
||||
2.31.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
Name: tuna
|
||||
Version: 0.18
|
||||
Release: 9%{?dist}
|
||||
License: GPL-2.0-only AND LGPL-2.1-only
|
||||
Version: 0.16
|
||||
Release: 5%{?dist}
|
||||
License: GPLv2
|
||||
Summary: Application tuning GUI & command line utility
|
||||
Group: Applications/System
|
||||
Source: https://www.kernel.org/pub/software/utils/tuna/%{name}-%{version}.tar.xz
|
||||
@ -9,22 +9,17 @@ URL: https://git.kernel.org/pub/scm/utils/tuna/tuna.git
|
||||
|
||||
BuildArch: noarch
|
||||
BuildRequires: python3-devel, gettext
|
||||
Requires: python3-ethtool
|
||||
Requires: python3-linux-procfs >= 0.6
|
||||
# This really should be a Suggests...
|
||||
# Requires: python-inet_diag
|
||||
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
||||
|
||||
# PATCHES
|
||||
Patch1: tuna-Replace-python_ethtool-with-builtin-funtionalit.patch
|
||||
Patch2: tuna-Fix-matching-irqs-in-ps_show_thread.patch
|
||||
Patch3: tuna-tuna.py-use-fstrings.patch
|
||||
Patch4: tuna-tuna_gui.py-use-fstrings.patch
|
||||
Patch5: tuna-tuna-cmd.py-use-fstrings.patch
|
||||
Patch6: tuna-Adapt-show_threads-cgroup-output-to-terminal-si.patch
|
||||
Patch7: tuna-Fix-show_threads-cgroup-without-a-term.patch
|
||||
Patch8: Add-SPDX-license-identifiers.patch
|
||||
Patch9: tuna-Remove-spec-file-from-git.patch
|
||||
Patch10: tuna-Don-t-start-the-gui-if-a-display-is-not-availab.patch
|
||||
Patch1: tuna-Add-distinction-between-spread-and-move-to-erro.patch
|
||||
Patch2: tuna-Print-warning-if-setting-affinity-results-in-EBUSY.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
|
||||
@ -36,7 +31,11 @@ Can be used as a command line utility without requiring the GUI libraries to be
|
||||
installed.
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
%setup -q
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
|
||||
%build
|
||||
%{__python3} setup.py build
|
||||
@ -83,61 +82,6 @@ rm -rf %{buildroot}
|
||||
%{_datadir}/polkit-1/actions/org.tuna.policy
|
||||
|
||||
%changelog
|
||||
* Wed Dec 13 2023 John Kacur <jkacur@redhat.com> - 0.18-9
|
||||
- Don't start the gui if a display is not available
|
||||
- Revert removing distutils for rhel8
|
||||
- Update the License tag in the specfile to the spdx version
|
||||
Resolves: RHEL-19179
|
||||
|
||||
* Mon Dec 11 2023 John Kacur <jkacur@redhat.com> - 0.18-8
|
||||
- Remove deprecated distutils from setup
|
||||
- Adjust SPDX patch to accomdate the removed distutils
|
||||
Resolves: RHEL-19037
|
||||
|
||||
* Wed Nov 01 2023 John Kacur <jkacur@redhat.com> - 0.18-7
|
||||
- Remove specfile from upstream source
|
||||
Resolves: RHEL-9197
|
||||
|
||||
* Wed Nov 23 2022 Leah Leshchinsky <lleshchi@redhat.com> - 0.18-6
|
||||
- Fix show_threads --cgroups without a term
|
||||
Resolves: rhbz#2121518
|
||||
|
||||
* Fri Nov 18 2022 Leah Leshchinsky <lleshchi@redhat.com> - 0.18-5
|
||||
- Adapt show_threads cgroup output to terminal size
|
||||
Resolves: rhbz#2121518
|
||||
|
||||
* Wed Nov 02 2022 Leah Leshchinsky <lleshchi@redhat.com> - 0.18-4
|
||||
- Use f-strings in tuna where possible
|
||||
Resolves: rhbz#2120805
|
||||
|
||||
* Mon Oct 03 2022 John Kacur <jkacur@redhat.com> - 0.18-3
|
||||
- Match irqs with "irqs/"
|
||||
Resolves: rhbz#2131353
|
||||
|
||||
* Fri Sep 30 2022 John Kacur <jkacur@redhat.com> - 0.18-2
|
||||
- Replace dependency on python-ethtool with built-in functionality
|
||||
Resolves: rhbz#2123753
|
||||
|
||||
* Wed Jun 29 2022 Leah Leshchinsky <lleshchi@redhat.com> - 0.18-1
|
||||
- Rebase to upstream version 0.18
|
||||
Resolves: rhbz#2073555
|
||||
|
||||
* Thu May 19 2022 Leah Leshchinsky <lleshchi@redhat.com> - 0.17-3
|
||||
- Add logging infrastructure to tuna
|
||||
- Add cleanlogs rule to Makefile
|
||||
Resolves: rhbz#2062882
|
||||
|
||||
* Mon Apr 11 2022 Leah Leshchinsky <lleshchi@redhat.com> - 0.17-2
|
||||
- Fix typo for variable parm
|
||||
- Handle get_policy_and_rtprio exceptions
|
||||
- Remove finally block in get_policy_and_rtprio
|
||||
Resolves: rhbz#2049746
|
||||
|
||||
* Thu Jan 13 2022 Leah Leshchinsky <lleshchi@redhat.com> - 0.17-1
|
||||
- Rebase to upstream version 0.17
|
||||
- Fix ModuleNotFoundError
|
||||
Resolves: rhbz#2012306
|
||||
|
||||
* Tue Dec 14 2021 John Kacur <jkacur@redhat.com> - 0.16-5
|
||||
- Display correct cpu-affinity when a cpu is disabled
|
||||
Resolves: rhbz#2032614
|
||||
|
Loading…
Reference in New Issue
Block a user