Files
system/nvme-fix-plan.md
T
2026-03-06 15:51:09 +01:00

77 lines
2.0 KiB
Markdown

# NVMe Freeze Fix Plan — Kingston SNV2S2000G
## Problem
System freezes and SSHD becomes unresponsive due to NVMe I/O write timeouts.
The Kingston SNV2S2000G firmware fails to wake from deep power states (PS3/PS4) in time,
causing the kernel to abort I/O operations and eventually hard-lock the system.
- 152 NVMe I/O timeout errors logged in previous boot (Feb 17-20)
- 1 NVMe controller reset (Feb 19 09:41)
- 52 unsafe shutdowns (hard power-offs from freezes)
- SMART health: PASSED — drive is not failing, firmware power management is the issue
## Root Cause
NVMe Autonomous Power State Transition (APST) puts the drive into PS3/PS4.
Exit latencies (5ms / 70ms) exceed what the firmware can reliably handle,
causing write and flush operations to time out.
## Fix: Disable Deep NVMe Power States
### Step 1 — Apply kernel parameter
Run with sudo in a terminal:
```bash
sudo sed -i 's|rootfstype=btrfs|rootfstype=btrfs nvme_core.default_ps_max_latency_us=5000|' /boot/limine.conf
```
### Step 2 — Verify the change
```bash
grep nvme_core /boot/limine.conf
```
Every `cmdline:` line should now end with `nvme_core.default_ps_max_latency_us=5000`.
### Step 3 — Reboot
```bash
sudo reboot
```
### Step 4 — Confirm after reboot
```bash
# Verify kernel parameter is active
cat /proc/cmdline | grep nvme_core
# Monitor for NVMe errors (should show nothing new)
journalctl -b -k | grep -i 'nvme.*timeout'
```
## Monitoring
Watch for recurrence over the next few days:
```bash
# Check for any NVMe timeouts in current boot
journalctl -b -k | grep -i 'nvme.*timeout'
# Check SMART data periodically
sudo smartctl -a /dev/nvme0
```
## If Freezes Continue
1. Try a stricter latency limit: change `5000` to `0` (disables all power state transitions)
2. Check for Kingston firmware updates for SNV2S2000G (current: SBK00104)
3. If nothing helps, the drive may need replacement despite passing SMART checks
## Drive Info
- Model: KINGSTON SNV2S2000G (2TB)
- Serial: 50026B7784F6ACF9
- Firmware: SBK00104
- Percentage Used: 5%
- Bootloader: Limine
- Config: /boot/limine.conf