Round 315: Sysstat ext, Iostat ext, Sar ext, Pidstat ext, Mpstat ext (20 commands)

ober

5b4e44486b62511a60c56069de0c91fac8ae39af

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 1a753c1..cf7893f 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 315 — Sysstat ext, Iostat ext, Sar ext, Pidstat ext, Mpstat ext
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `sysstat-collect` | :orange_circle: | Collect system activity data |
+| `sysstat-summary` | :orange_circle: | Show sysstat summary |
+| `sysstat-graph` | :orange_circle: | Generate sysstat graph |
+| `sysstat-report` | :orange_circle: | Generate sysstat report |
+| `iostat-show` | :orange_circle: | Show I/O statistics |
+| `iostat-extended` | :orange_circle: | Show extended I/O stats |
+| `iostat-device` | :orange_circle: | Show device I/O stats |
+| `iostat-cpu` | :orange_circle: | Show CPU utilization |
+| `sar-cpu` | :orange_circle: | Show CPU usage history |
+| `sar-memory` | :orange_circle: | Show memory usage history |
+| `sar-disk` | :orange_circle: | Show disk activity history |
+| `sar-network` | :orange_circle: | Show network stats history |
+| `pidstat-show` | :orange_circle: | Show process statistics |
+| `pidstat-cpu` | :orange_circle: | Show process CPU stats |
+| `pidstat-memory` | :orange_circle: | Show process memory stats |
+| `pidstat-io` | :orange_circle: | Show process I/O stats |
+| `tapestat-show` | :orange_circle: | Show tape statistics |
+| `tapestat-extended` | :orange_circle: | Show extended tape stats |
+| `mpstat-show` | :orange_circle: | Show processor statistics |
+| `mpstat-per-cpu` | :orange_circle: | Show per-CPU statistics |
+
 ### Round 314 — LVM ext, MDADM ext, Cryptsetup ext, Dmsetup ext, Multipath ext
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index e61ac1b..1391e47 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -23721,4 +23721,52 @@
 
 (def (cmd-multipath-list app)
   (let* ((echo (app-state-echo app)))
-    (echo-message! echo "Multipath: listing maps")))
\ No newline at end of file
+    (echo-message! echo "Multipath: listing maps")))
+
+;;; Round 315 — Sar ext, Pidstat ext, Mpstat ext (batch 2)
+
+(def (cmd-sar-disk app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Sar: showing disk activity")))
+
+(def (cmd-sar-network app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Sar: showing network statistics")))
+
+(def (cmd-pidstat-show app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Pidstat: showing process statistics")))
+
+(def (cmd-pidstat-cpu app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "PID: "
+      (lambda (pid)
+        (echo-message! echo (str "Pidstat: CPU stats for PID " pid))))))
+
+(def (cmd-pidstat-memory app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "PID: "
+      (lambda (pid)
+        (echo-message! echo (str "Pidstat: memory stats for PID " pid))))))
+
+(def (cmd-pidstat-io app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "PID: "
+      (lambda (pid)
+        (echo-message! echo (str "Pidstat: I/O stats for PID " pid))))))
+
+(def (cmd-tapestat-show app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Tapestat: showing tape statistics")))
+
+(def (cmd-tapestat-extended app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Tapestat: showing extended statistics")))
+
+(def (cmd-mpstat-show app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Mpstat: showing processor statistics")))
+
+(def (cmd-mpstat-per-cpu app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Mpstat: showing per-CPU statistics")))
\ No newline at end of file
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index ca754e3..dc19895 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -24436,3 +24436,47 @@
       (lambda (dev)
         (echo-message! echo (str "Cryptsetup: opening " dev))))))
 
+;;; Round 315 — Sysstat ext, Iostat ext, Sar ext, Pidstat ext, Mpstat ext (batch 1)
+
+(def (cmd-sysstat-collect app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Sysstat: collecting system activity data")))
+
+(def (cmd-sysstat-summary app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Sysstat: showing summary")))
+
+(def (cmd-sysstat-graph app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Sysstat: generating graph")))
+
+(def (cmd-sysstat-report app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Sysstat: generating report")))
+
+(def (cmd-iostat-show app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Iostat: showing I/O statistics")))
+
+(def (cmd-iostat-extended app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Iostat: showing extended statistics")))
+
+(def (cmd-iostat-device app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device: "
+      (lambda (dev)
+        (echo-message! echo (str "Iostat: showing stats for " dev))))))
+
+(def (cmd-iostat-cpu app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Iostat: showing CPU utilization")))
+
+(def (cmd-sar-cpu app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Sar: showing CPU usage")))
+
+(def (cmd-sar-memory app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Sar: showing memory usage")))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 4f32fff..0260651 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -8032,4 +8032,25 @@
   (register-command! 'multipath-flush cmd-multipath-flush)
   (register-command! 'multipath-resize cmd-multipath-resize)
   (register-command! 'multipath-list cmd-multipath-list)
+  ;; Round 315
+  (register-command! 'sysstat-collect cmd-sysstat-collect)
+  (register-command! 'sysstat-summary cmd-sysstat-summary)
+  (register-command! 'sysstat-graph cmd-sysstat-graph)
+  (register-command! 'sysstat-report cmd-sysstat-report)
+  (register-command! 'iostat-show cmd-iostat-show)
+  (register-command! 'iostat-extended cmd-iostat-extended)
+  (register-command! 'iostat-device cmd-iostat-device)
+  (register-command! 'iostat-cpu cmd-iostat-cpu)
+  (register-command! 'sar-cpu cmd-sar-cpu)
+  (register-command! 'sar-memory cmd-sar-memory)
+  (register-command! 'sar-disk cmd-sar-disk)
+  (register-command! 'sar-network cmd-sar-network)
+  (register-command! 'pidstat-show cmd-pidstat-show)
+  (register-command! 'pidstat-cpu cmd-pidstat-cpu)
+  (register-command! 'pidstat-memory cmd-pidstat-memory)
+  (register-command! 'pidstat-io cmd-pidstat-io)
+  (register-command! 'tapestat-show cmd-tapestat-show)
+  (register-command! 'tapestat-extended cmd-tapestat-extended)
+  (register-command! 'mpstat-show cmd-mpstat-show)
+  (register-command! 'mpstat-per-cpu cmd-mpstat-per-cpu)
 )