A short follow-up on monitoring setup, plus a clarification on tnas-smartfan history and one technical observation that may be worth flagging on your side.
**Debug Mode validation**
I verified that TOS Debug Mode is writing properly to /Volume1/public/debug_log/. The syslog and kernlog files are updated in near real-time (I confirmed by injecting a test entry via `logger` and seeing it appear within 2 seconds). So if a new incident occurs, the exported Debug Log will contain useful kernel and system data for your analysis.
**Enhanced local monitoring**
I've also extended my own freeze-watch script (which captures a snapshot every 30 seconds to a persistent log on Volume3, BTRFS) to include:
- top processes by RSS (memory) in addition to CPU
- per-container Docker stats (CPU% and memory usage)
- swap usage trends
This should give a much clearer picture of "which processes besides runc were consuming CPU and memory" if a similar incident occurs, complementing the TOS Debug Log.
**Clarification on tnas-smartfan history**
For full context on the 09 June incident, here is the precise timeline of tnas-smartfan on my unit:
- Originally disabled back in mid-May 2026, *before* the BIOS update, after I observed that smartctl calls from the smartfan daemon were piling up in D-state under disk I/O load and contributing to system stalls. Thermal regulation has since been handled by the BIOS EC in automatic mode, with HDD temperatures staying comfortably in the 32–34°C range.
- Re-enabled on 08 June 2026 (after 12 consecutive stable days on the BIOS + intel_idle.max_cstate=1 fix), with a systemd drop-in to lower its I/O and CPU priority (`IOSchedulingClass=idle`, `Nice=10`). Initial test was clean: ~24 hours of normal operation, no D-state activity from smartctl, slight HDD temperature improvement.
- The 09 June ~16:00 freeze (runc cascade, memory pressure) occurred during this re-enabled window. It was the only configuration change between the 12 stable days and the freeze.
- Re-disabled immediately after the incident, on 09 June evening, to isolate the variable. Currently still disabled.
The runc-cascade freeze signature is quite different from the smartfan-related D-state pile-up I had seen earlier, so I'm not claiming smartfan was the direct cause — only that it is the single variable that changed. The current A/B test (extended stable uptime with smartfan disabled vs. the previous re-enabled window) should clarify this.
**One observation worth flagging: atop appears non-functional under TOS 7**
While validating the Debug Mode setup, I noticed that the atop service (/usr/bin/atop, started automatically when Debug Mode is enabled) writes only one initial dump (~23 MB of preloaded historical data) and then stops writing entirely. The service is reported as `active (running)` by systemd, but the log file does not grow.
Diagnostic details:
- Process state: S (sleeping), wchan = `do_sys_pause`
- `strace -p PID` for 5 seconds shows zero syscalls (no pause, nanosleep, write, etc.)
- File size strictly unchanged between T0 and T+35s
- Command line: `/usr/bin/atop -w /Volume1/public/debug_log/atoplog 30`
This suggests atop is blocked indefinitely on a `pause()` syscall that never returns — likely because the periodic signal that should wake it every 30 seconds is not being delivered. The issue persists after the BIOS update to BJFX-ADLN-109 and TOS 7.0.0612 (kernel 6.12.63+ #15). I previously observed the same behavior on earlier TOS 7 builds, so this looks like a long-standing issue in the TOS 7 kernel / signal delivery path. It's not blocking for me (I have alternative monitoring), but you may want to verify it on a reference unit and check whether the kernel build options or systemd-atop unit need adjustment.
**Current status**
- Uptime since the 09 June incident: stable, no recurrence
- Configuration unchanged (intel_idle.max_cstate=1, tnas-smartfan disabled, CPU limits on Prowlarr/Jellyseerr, Immich stopped)
- Goal: 7+ days clean baseline before reintroducing variables
I'll report back at the milestone or immediately if an incident occurs (with the TOS Debug Log attached).
Thanks again for the continued collaboration.
Best regards