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

2.0 KiB

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:

sudo sed -i 's|rootfstype=btrfs|rootfstype=btrfs nvme_core.default_ps_max_latency_us=5000|' /boot/limine.conf

Step 2 — Verify the change

grep nvme_core /boot/limine.conf

Every cmdline: line should now end with nvme_core.default_ps_max_latency_us=5000.

Step 3 — Reboot

sudo reboot

Step 4 — Confirm after reboot

# 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:

# 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