Round 337: Ftrace ext, Irqbalance ext, Chrt ext, Ionice ext, Tuna ext (20 commands)

ober

a7c048e1f729e219db8bea84ab2257780c31e74e

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index d3e022c..c927acf 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | ebib-import-file | :orange_circle: | Import file into Ebib |
 | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer |
 
+### Round 337 — Ftrace ext, Irqbalance ext, Chrt ext, Ionice ext, Tuna ext
+
+| Feature | Status | Notes |
+|---|---|---|
+| ftrace-enable | :orange_circle: | Ftrace: enable function tracer |
+| ftrace-disable | :orange_circle: | Ftrace: disable tracer |
+| ftrace-events | :orange_circle: | Ftrace: list available events |
+| ftrace-filter | :orange_circle: | Ftrace: set function filter |
+| irqbalance-status | :orange_circle: | Irqbalance: show status |
+| irqbalance-oneshot | :orange_circle: | Irqbalance: one-shot balance |
+| irqbalance-ban | :orange_circle: | Irqbalance: ban an IRQ |
+| irqbalance-debug | :orange_circle: | Irqbalance: debug mode output |
+| chrt-show | :orange_circle: | Chrt: show scheduling policy |
+| chrt-fifo | :orange_circle: | Chrt: set FIFO priority |
+| chrt-rr | :orange_circle: | Chrt: set round-robin priority |
+| chrt-batch | :orange_circle: | Chrt: set SCHED_BATCH policy |
+| ionice-get | :orange_circle: | Ionice: get I/O class for PID |
+| ionice-set | :orange_circle: | Ionice: set I/O class |
+| ionice-class | :orange_circle: | Ionice: list scheduling classes |
+| ionice-idle | :orange_circle: | Ionice: set idle I/O class |
+| tuna-show | :orange_circle: | Tuna: show IRQ/thread affinities |
+| tuna-irqs | :orange_circle: | Tuna: list IRQ affinities |
+| tuna-threads | :orange_circle: | Tuna: list thread affinities |
+| tuna-isolate | :orange_circle: | Tuna: isolate a CPU |
+
 ### Round 336 — Perf ext, Strace ext, Ltrace ext, Sysdig ext, Bpftrace ext
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 0390c67..569431f 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -24887,3 +24887,53 @@
 (def (cmd-bpftrace-oneliners app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "BPFtrace: showing common one-liners")))
+
+;;; Round 337 — Chrt ext, Ionice ext, Tuna ext (batch 2)
+
+(def (cmd-chrt-rr app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Chrt RR priority (1-99): "
+      (lambda (prio)
+        (echo-message! echo (str "Chrt: setting round-robin priority " prio))))))
+
+(def (cmd-chrt-batch app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Chrt: setting SCHED_BATCH policy")))
+
+(def (cmd-ionice-get app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Ionice get PID: "
+      (lambda (pid)
+        (echo-message! echo (str "Ionice: class for PID " pid))))))
+
+(def (cmd-ionice-set app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Ionice set class (1-3): "
+      (lambda (cls)
+        (echo-message! echo (str "Ionice: setting class " cls))))))
+
+(def (cmd-ionice-class app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ionice: listing I/O scheduling classes")))
+
+(def (cmd-ionice-idle app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ionice: setting idle I/O class")))
+
+(def (cmd-tuna-show app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Tuna: showing current IRQ/thread affinities")))
+
+(def (cmd-tuna-irqs app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Tuna: listing IRQ affinities")))
+
+(def (cmd-tuna-threads app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Tuna: listing thread affinities")))
+
+(def (cmd-tuna-isolate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Tuna isolate CPU: "
+      (lambda (cpu)
+        (echo-message! echo (str "Tuna: isolating CPU " cpu))))))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 1edace5..b20ccea 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -25582,3 +25582,53 @@
 (def (cmd-ltrace-demangle app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Ltrace: demangling C++ symbols")))
+
+;;; Round 337 — Ftrace ext, Irqbalance ext, Chrt ext, Ionice ext, Tuna ext (batch 1)
+
+(def (cmd-ftrace-enable app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ftrace: enabling function tracer")))
+
+(def (cmd-ftrace-disable app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ftrace: disabling tracer")))
+
+(def (cmd-ftrace-events app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ftrace: listing available events")))
+
+(def (cmd-ftrace-filter app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Ftrace function filter: "
+      (lambda (filter)
+        (echo-message! echo (str "Ftrace: filtering on " filter))))))
+
+(def (cmd-irqbalance-status app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Irqbalance: showing status")))
+
+(def (cmd-irqbalance-oneshot app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Irqbalance: one-shot balance")))
+
+(def (cmd-irqbalance-ban app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Irqbalance ban IRQ: "
+      (lambda (irq)
+        (echo-message! echo (str "Irqbalance: banning IRQ " irq))))))
+
+(def (cmd-irqbalance-debug app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Irqbalance: debug mode output")))
+
+(def (cmd-chrt-show app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Chrt show PID: "
+      (lambda (pid)
+        (echo-message! echo (str "Chrt: showing policy for PID " pid))))))
+
+(def (cmd-chrt-fifo app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Chrt FIFO priority (1-99): "
+      (lambda (prio)
+        (echo-message! echo (str "Chrt: setting FIFO priority " prio))))))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 2b43c2a..92a6853 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -8496,4 +8496,26 @@
   (register-command! 'bpftrace-script cmd-bpftrace-script)
   (register-command! 'bpftrace-histogram cmd-bpftrace-histogram)
   (register-command! 'bpftrace-oneliners cmd-bpftrace-oneliners)
+
+  ;; Round 337 — Ftrace ext, Irqbalance ext, Chrt ext, Ionice ext, Tuna ext
+  (register-command! 'ftrace-enable cmd-ftrace-enable)
+  (register-command! 'ftrace-disable cmd-ftrace-disable)
+  (register-command! 'ftrace-events cmd-ftrace-events)
+  (register-command! 'ftrace-filter cmd-ftrace-filter)
+  (register-command! 'irqbalance-status cmd-irqbalance-status)
+  (register-command! 'irqbalance-oneshot cmd-irqbalance-oneshot)
+  (register-command! 'irqbalance-ban cmd-irqbalance-ban)
+  (register-command! 'irqbalance-debug cmd-irqbalance-debug)
+  (register-command! 'chrt-show cmd-chrt-show)
+  (register-command! 'chrt-fifo cmd-chrt-fifo)
+  (register-command! 'chrt-rr cmd-chrt-rr)
+  (register-command! 'chrt-batch cmd-chrt-batch)
+  (register-command! 'ionice-get cmd-ionice-get)
+  (register-command! 'ionice-set cmd-ionice-set)
+  (register-command! 'ionice-class cmd-ionice-class)
+  (register-command! 'ionice-idle cmd-ionice-idle)
+  (register-command! 'tuna-show cmd-tuna-show)
+  (register-command! 'tuna-irqs cmd-tuna-irqs)
+  (register-command! 'tuna-threads cmd-tuna-threads)
+  (register-command! 'tuna-isolate cmd-tuna-isolate)
 )