@@ -21,7 +21,7 @@ from functools import reduce
import tuna.new_eth as ethtool
import tuna.tuna_sched as tuna_sched
import procfs
-from tuna import tuna, sysfs
+from tuna import tuna, sysfs, utils
import logging
import time
import shutil
@@ -76,7 +76,6 @@ except:
# FIXME: ETOOMANYGLOBALS, we need a class!
-nr_cpus = None
ps = None
irqs = None
@@ -233,25 +232,6 @@ def gen_parser():
return parser
-def get_nr_cpus():
- """ Get all cpus including disabled cpus """
- global nr_cpus
- if nr_cpus:
- return nr_cpus
- nr_cpus = os.sysconf('SC_NPROCESSORS_CONF')
- return nr_cpus
-
-nics = None
-
-
-def get_nics():
- global nics
- if nics:
- return nics
- nics = ethtool.get_active_devices()
- return nics
-
-
def thread_help(tid):
global ps
if not ps:
@@ -277,7 +257,7 @@ def save(cpu_list, thread_list, filename):
if (cpu_list and not set(kt.affinity).intersection(set(cpu_list))) or \
(thread_list and kt.pid not in thread_list):
del kthreads[name]
- tuna.generate_rtgroups(filename, kthreads, get_nr_cpus())
+ tuna.generate_rtgroups(filename, kthreads, utils.get_nr_cpus())
def ps_show_header(has_ctxt_switch_info, cgroups=False):
@@ -328,7 +308,7 @@ 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()))
+ return ",".join(str(hex(a)) for a in procfs.hexbitmask(affinity, utils.get_nr_cpus()))
def ps_show_thread(pid, affect_children, ps, has_ctxt_switch_info, sock_inodes,
sock_inode_re, cgroups, columns=None, compact=True):
@@ -351,7 +331,7 @@ def ps_show_thread(pid, affect_children, ps, has_ctxt_switch_info, sock_inodes,
irqs = procfs.interrupts()
users = irqs[tuna.irq_thread_number(cmd)]["users"]
for u in users:
- if u in get_nics():
+ if u in utils.get_nics():
users[users.index(u)] = "%s(%s)" % (
u, ethtool.get_module(u))
users = ",".join(users)
@@ -486,7 +466,7 @@ def do_ps(thread_list, cpu_list, irq_list, show_uthreads, show_kthreads,
def find_drivers_by_users(users):
- nics = get_nics()
+ nics = utils.get_nics()
drivers = []
for u in users:
try:
@@ -689,10 +669,10 @@ def main():
apply_config(args.profilename)
elif args.command in ['include', 'I']:
- tuna.include_cpus(args.cpu_list, get_nr_cpus())
+ tuna.include_cpus(args.cpu_list, utils.get_nr_cpus())
elif args.command in ['isolate', 'i']:
- tuna.isolate_cpus(args.cpu_list, get_nr_cpus())
+ tuna.isolate_cpus(args.cpu_list, utils.get_nr_cpus())
elif args.command in ['run', 'r']:
new file mode 100644
@@ -0,0 +1,27 @@
+# Copyright (C) 2024 John B. Wyatt IV
+# SPDX-License-Identifier: GPL-2.0-only
+
+import os
+
+import tuna.new_eth as ethtool
+
+# Collect a few globals and functions so they can be reused in other modules
+nr_cpus = None
+nics = None
+
+def get_nr_cpus():
+ """ Get all cpus including disabled cpus """
+ global nr_cpus
+ if nr_cpus != None:
+ return nr_cpus
+ nr_cpus = os.sysconf('SC_NPROCESSORS_CONF')
+ return nr_cpus
+
+def get_nics():
+ global nics
+ if nics != None:
+ return nics
+ nics = ethtool.get_active_devices()
+ return nics
+
+