77 lines
2.0 KiB
Markdown
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
|