I am using a Laptop (Infinity / Tongfang W5; AMD 5900HX & NVIDIA RTX 3080 Max-Q) with dual SSD’s. Initially, I could not get my system to reliably wake from sleep, with the system either appearing in write-only mode or completely locking up.
After referring to Arch Wiki - NVMe Troubleshooting I was able to get the system to resume from suspend reliably, but still can not mount the second drive. I have hit a bit of a wall so any suggestions would be welcome. Update: I think the offending issue at its core is:
nvme nvme0: missing or invalid SUBNQN field.
The secondary drive behaviour is that it will appear in Nautilus, etc. for about 30 seconds after resume before disappearing from the system entirely.
- System is on
nvme1n1
; Secondary drive isnvme0n1
- Both drives contain encrypted partitions that are set up to mount via crypttab and fstab.
-
nvme0n1p1
has a LUKS and an unencrypted partition. After resume from suspend, neither mount. - Adding
iommu=soft
to kernel flags via GRUB does not solve the issue. - LTS and Latest Kernel installations behave in the same way.
- Adding
nvme_core.default_ps_max_latency_us=100
resolved R/W issues onnvme1n1
(System drive - Crucial SSD) - Determined value of
nvme_core.default_ps_max_latency_us
viasudo nvme get-feature /dev/ng1n1 -f 0x0c -H
; also for/dev/ng0n1
. Paths found usingsudo nvme list
. - Drives are a
Crucial P5 Plus 2TB PCIe M.2 2280SS Gaming SSD (CT2000P5SSD8)
andSeagate FireCuda 510 SSD
. - After resuming from suspend
/dev/nvme0n1
will not appear when invokingsudo nvme list
.
My GRUB Options are:
GRUB_CMDLINE_LINUX_DEFAULT="quiet cryptdevice=UUID=a***8748:luks-a***8748 root=/dev/mapper/luks-a***8748 splash apparmor=1 security=apparmor resume=/dev/mapper/luks-4a***ccba1 udev.log_priority=3 nvme_core.default_ps_max_latency_us=100"
Results of lsblk -fa
:
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
loop0
sda
nvme0n1
├─nvme0n1p1
│ crypto 2 d***fa06d
│ └─luks-d***fa06d
│ ext4 1.0 Data - Crypt
│ f***3be07 233.7G 69% /mnt/Data-Crypt
└─nvme0n1p2
ext4 1.0 Data - Clear
6***c747 836.7G 4% /mnt/Data-Clear
nvme1n1
├─nvme1n1p1
│ vfat FAT32 NO_LABEL 12B0-2F49 298.9M 0% /boot/efi
├─nvme1n1p2
│ crypto 1 a***8748
│ └─luks-a***8748
│ ext4 1.0 d***a60be 698.1G 56% /
└─nvme1n1p3
crypto 1 4***ccba1
└─luks-4***ccba1
swap 1 swap fa***11dd [SWAP]
Results of journalctl -b0 -p4 --no-pager
:
Oct 22 11:20:52 Laptop123 kernel: nvme nvme0: Device not ready; aborting reset, CSTS=0x3
Oct 22 11:20:52 Laptop123 kernel: nvme nvme0: Removing after probe failure status: -19
Oct 22 11:20:52 Laptop123 systemd-cryptsetup[41320]: device-mapper: remove ioctl on luks-d***fa06d failed: Device or resource busy
Oct 22 11:20:52 Laptop123 kernel: Buffer I/O error on dev dm-2, logical block 0, lost sync page write
Oct 22 11:20:52 Laptop123 kernel: EXT4-fs (dm-2): I/O error while writing superblock
Oct 22 11:20:52 Laptop123 gnome-shell[4097]: Object .Gjs_drive-menu_gnome-shell-extensions_gcampax_github_com_extension_MountMenuItem (0x55ccac23f810), has been already disposed — impossible to set any property on it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
Oct 22 11:20:52 Laptop123 gnome-shell[4097]: Object .Gjs_drive-menu_gnome-shell-extensions_gcampax_github_com_extension_MountMenuItem (0x55cca58357f0), has been already disposed — impossible to set any property on it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
Oct 22 11:20:52 Laptop123 gnome-shell[4097]: Object .Gjs_drive-menu_gnome-shell-extensions_gcampax_github_com_extension_MountMenuItem (0x55cca58357f0), has been already disposed — impossible to set any property on it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
Oct 22 11:20:52 Laptop123 gnome-shell[4097]: Object .Gjs_drive-menu_gnome-shell-extensions_gcampax_github_com_extension_MountMenuItem (0x55cca58357f0), has been already disposed — impossible to set any property on it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
Oct 22 11:20:52 Laptop123 kernel: Buffer I/O error on dev dm-2, logical block 0, async page read
Oct 22 11:20:52 Laptop123 kernel: Buffer I/O error on dev dm-2, logical block 0, async page read
Oct 22 11:20:52 Laptop123 kernel: Buffer I/O error on dev dm-2, logical block 0, async page read
Oct 22 11:20:52 Laptop123 kernel: Buffer I/O error on dev dm-2, logical block 0, async page read
Oct 22 11:20:52 Laptop123 kernel: Buffer I/O error on dev dm-2, logical block 0, async page read
Oct 22 11:20:52 Laptop123 kernel: Buffer I/O error on dev dm-2, logical block 0, async page read
Oct 22 11:20:52 Laptop123 kernel: Buffer I/O error on dev dm-2, logical block 0, async page read
Oct 22 11:20:52 Laptop123 kernel: Buffer I/O error on dev dm-2, logical block 0, async page read
I will post my inxi below, but would appreciate any pointers on where to from here! Please let me know if I can provide any further diagnostic info.