public inbox for linux-rt-users@vger.kernel.org
 help / color / mirror / Atom feed
From: John Kacur <jkacur@redhat.com>
To: linux-rt-users <linux-rt-users@vger.kernel.org>
Cc: Clark Williams <williams@redhat.com>, John Kacur <jkacur@redhat.com>
Subject: [PATCH 14/23] tuna: Add -U and -K to the move command
Date: Fri,  7 Nov 2025 13:57:23 -0500	[thread overview]
Message-ID: <20251107185732.23992-15-jkacur@redhat.com> (raw)
In-Reply-To: <20251107185732.23992-1-jkacur@redhat.com>

Add the following options to the move command (like in the show_threads
command)
  -U, --no_uthreads     Operations will not affect user threads
  -K, --no_kthreads     Operations will not affect kernel threads

Signed-off-by: John Kacur <jkacur@redhat.com>
---
 tuna-cmd.py  | 4 +++-
 tuna/tuna.py | 7 ++++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/tuna-cmd.py b/tuna-cmd.py
index 9496c61f0c2b..d0a3e6b7dbf8 100755
--- a/tuna-cmd.py
+++ b/tuna-cmd.py
@@ -174,6 +174,8 @@ def gen_parser():
     move_group.add_argument('-N', '--nohz_full', **MODS['nohz_full'])
     move.add_argument('-t', '--threads', **MODS['threads'])
     move.add_argument('-q', '--irqs', **MODS['irqs'])
+    move.add_argument('-U', '--no_uthreads', **MODS['no_uthreads'])
+    move.add_argument('-K', '--no_kthreads', **MODS['no_kthreads'])
 
     spread_group = spread.add_mutually_exclusive_group(required=True)
     spread_group.add_argument('-c', '--cpus', **MODS['cpus'])
@@ -746,7 +748,7 @@ def main():
             parser.error(f"tuna: {args.command} requires a thread/irq list!\n")
 
         if args.thread_list:
-            tuna.move_threads_to_cpu(args.cpu_list, args.thread_list, spread=spread)
+            tuna.move_threads_to_cpu(args.cpu_list, args.thread_list, args.uthreads, args.kthreads, spread=spread)
 
         if args.irq_list:
             tuna.move_irqs_to_cpu(args.cpu_list, args.irq_list, spread=spread)
diff --git a/tuna/tuna.py b/tuna/tuna.py
index 1380df0dadba..ef60c033362d 100755
--- a/tuna/tuna.py
+++ b/tuna/tuna.py
@@ -174,7 +174,7 @@ def is_hardirq_handler(self, pid):
     except:
         return False
 
-def move_threads_to_cpu(cpus, pid_list, set_affinity_warning=None, spread=False):
+def move_threads_to_cpu(cpus, pid_list, show_uthreads, show_kthreads, set_affinity_warning=None, spread=False):
     changed = False
 
     ps = procfs.pidstats()
@@ -183,6 +183,11 @@ def move_threads_to_cpu(cpus, pid_list, set_affinity_warning=None, spread=False)
     new_affinity = cpus
     last_cpu = max(cpus) + 1
     for pid in pid_list:
+        iskth = iskthread(pid)
+        if not show_uthreads and not iskth:
+            continue
+        if not show_kthreads and iskth:
+            continue
         if spread:
             new_affinity = [cpus[cpu_idx]]
             cpu_idx += 1
-- 
2.51.1


  parent reply	other threads:[~2025-11-07 18:58 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-07 18:57 [ANNOUNCE] tuna v0.20 John Kacur
2025-11-07 18:57 ` [PATCH 01/23] Add SPDX license identifiers John Kacur
2025-12-18  2:45   ` Kate Stewart
2025-11-07 18:57 ` [PATCH 02/23] tuna: Remove spec file from git John Kacur
2025-11-07 18:57 ` [PATCH 03/23] tuna: Don't start the gui if a display is not available John Kacur
2025-11-07 18:57 ` [PATCH 04/23] tuna: Fix string syntax warnings with raw strings John Kacur
2025-11-07 18:57 ` [PATCH 05/23] tuna: Fix help.py syntax warnings John Kacur
2025-11-07 18:57 ` [PATCH 06/23] tuna: help.py John Kacur
2025-11-07 18:57 ` [PATCH 07/23] tuna: extract common cpu and nics determination code into a utils.py file John Kacur
2025-11-07 18:57 ` [PATCH 08/23] tuna: Add idle_state control functionality John Kacur
2025-11-07 18:57 ` [PATCH 09/23] tuna: utils: A few tweaks John Kacur
2025-11-07 18:57 ` [PATCH 10/23] tuna: Add Pyright helper John Kacur
2025-11-07 18:57 ` [PATCH 11/23] tuna: Update man page with cpu_power command John Kacur
2025-11-07 18:57 ` [PATCH 12/23] tuna: Fix show_threads -t and show_irqs -q John Kacur
2025-11-07 18:57 ` [PATCH 13/23] tuna: Fix run command failing to apply BATCH policy John Kacur
2025-11-07 18:57 ` John Kacur [this message]
2025-11-07 18:57 ` [PATCH 15/23] tuna: Add -U and -K to the spread command John Kacur
2025-11-07 18:57 ` [PATCH 16/23] tuna: replace match with if statements John Kacur
2025-11-07 18:57 ` [PATCH 17/23] tuna: Proofreading fixes John Kacur
2025-11-07 18:57 ` [PATCH 18/23] tuna: Remove broken testuna John Kacur
2025-11-07 18:57 ` [PATCH 19/23] tuna: Fix setting a realtime scheduling policy John Kacur
2025-11-07 18:57 ` [PATCH 20/23] tuna: Update setup.py with co-author and metadata improvements John Kacur
2025-11-07 18:57 ` [PATCH 21/23] tuna: Add pyproject.toml for modern Python packaging John Kacur
2025-11-07 18:57 ` [PATCH 22/23] tuna: Update version to 0.20 John Kacur
2025-11-07 18:57 ` [PATCH 23/23] tuna: Fix pyproject.toml build issues John Kacur

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251107185732.23992-15-jkacur@redhat.com \
    --to=jkacur@redhat.com \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=williams@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox