NVMe drive not properly detected (using 5.4.0-9-generic)

Bug #1857152 reported by Dan Watkins
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

I have a Windows partition on an NVMe drive in my machine. I have confirmed that the drive is still functional by using it as the boot device from the BIOS menu. When I boot into Ubuntu, the drive is somewhat acknowledged, in that /dev/nvme0 exists, but the partitions are not discovered.

Examining the journal, I see the following emitted from the kernel:

$ journalctl | grep nvme
Dec 20 11:30:04 surprise kernel: nvme nvme0: pci function 0000:01:00.0
Dec 20 11:30:04 surprise kernel: nvme nvme0: missing or invalid SUBNQN field.
Dec 20 11:30:04 surprise kernel: nvme nvme0: allocated 64 MiB host memory buffer.
Dec 20 11:30:04 surprise kernel: nvme nvme0: 15/0/0 default/read/poll queues
Dec 20 11:30:04 surprise kernel: nvme nvme0: Identify Descriptors failed (2)
---
ProblemType: Bug
ApportVersion: 2.20.11-0ubuntu14
Architecture: amd64
CurrentDesktop: i3
DistroRelease: Ubuntu 20.04
InstallationDate: Installed on 2019-05-07 (226 days ago)
InstallationMedia: Ubuntu 18.04.2 LTS "Bionic Beaver" - Release amd64 (20190210)
MachineType: Gigabyte Technology Co., Ltd. B450M DS3H
NonfreeKernelModules: nvidia_modeset nvidia
Package: linux (not installed)
ProcFB: 0 EFI VGA
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-5.4.0-9-generic root=/dev/mapper/ubuntu--vg-root ro quiet splash resume=UUID=73909634-a75d-42c9-8f66-a69138690756 nvme_core.default_ps_max_latency_us=0 vt.handoff=7
ProcVersionSignature: Ubuntu 5.4.0-9.12-generic 5.4.3
RelatedPackageVersions:
 linux-restricted-modules-5.4.0-9-generic N/A
 linux-backports-modules-5.4.0-9-generic N/A
 linux-firmware 1.184
RfKill:

Tags: focal
Uname: Linux 5.4.0-9-generic x86_64
UpgradeStatus: Upgraded to focal on 2019-11-15 (34 days ago)
UserGroups: adm boinc cdrom dip docker libvirt lpadmin lxd plugdev sambashare sbuild sudo
_MarkForUpload: True
dmi.bios.date: 01/25/2019
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: F4
dmi.board.asset.tag: Default string
dmi.board.name: B450M DS3H-CF
dmi.board.vendor: Gigabyte Technology Co., Ltd.
dmi.board.version: x.x
dmi.chassis.asset.tag: Default string
dmi.chassis.type: 3
dmi.chassis.vendor: Default string
dmi.chassis.version: Default string
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvrF4:bd01/25/2019:svnGigabyteTechnologyCo.,Ltd.:pnB450MDS3H:pvrDefaultstring:rvnGigabyteTechnologyCo.,Ltd.:rnB450MDS3H-CF:rvrx.x:cvnDefaultstring:ct3:cvrDefaultstring:
dmi.product.family: Default string
dmi.product.name: B450M DS3H
dmi.product.sku: Default string
dmi.product.version: Default string
dmi.sys.vendor: Gigabyte Technology Co., Ltd.
modified.conffile..etc.apport.crashdb.conf: [modified]
mtime.conffile..etc.apport.crashdb.conf: 2019-11-25T16:40:26.261317

Revision history for this message
Dan Watkins (oddbloke) wrote : AlsaInfo.txt

apport information

tags: added: apport-collected focal
description: updated
Revision history for this message
Dan Watkins (oddbloke) wrote : AudioDevicesInUse.txt

apport information

Revision history for this message
Dan Watkins (oddbloke) wrote : CRDA.txt

apport information

Revision history for this message
Dan Watkins (oddbloke) wrote : CurrentDmesg.txt

apport information

Revision history for this message
Dan Watkins (oddbloke) wrote : IwConfig.txt

apport information

Revision history for this message
Dan Watkins (oddbloke) wrote : Lspci.txt

apport information

Revision history for this message
Dan Watkins (oddbloke) wrote : Lsusb.txt

apport information

Revision history for this message
Dan Watkins (oddbloke) wrote : Lsusb-t.txt

apport information

Revision history for this message
Dan Watkins (oddbloke) wrote : Lsusb-v.txt

apport information

Revision history for this message
Dan Watkins (oddbloke) wrote : ProcCpuinfo.txt

apport information

Revision history for this message
Dan Watkins (oddbloke) wrote : ProcCpuinfoMinimal.txt

apport information

Revision history for this message
Dan Watkins (oddbloke) wrote : ProcEnviron.txt

apport information

Revision history for this message
Dan Watkins (oddbloke) wrote : ProcInterrupts.txt

apport information

Revision history for this message
Dan Watkins (oddbloke) wrote : ProcModules.txt

apport information

Revision history for this message
Dan Watkins (oddbloke) wrote : PulseList.txt

apport information

Revision history for this message
Dan Watkins (oddbloke) wrote : UdevDb.txt

apport information

Revision history for this message
Dan Watkins (oddbloke) wrote : WifiSyslog.txt

apport information

Revision history for this message
Dan Watkins (oddbloke) wrote :

I've just booted into the 5.4.5 upstream kernel from https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.5/ and I'm seeing that the NVMe drive _is_ detected correctly:

$ ls /dev/nvme*
/dev/nvme0
/dev/nvme0n1
/dev/nvme0n1p1
/dev/nvme0n1p2
/dev/nvme0n1p3
/dev/nvme0n1p4

The journal messages do look very similar, so maybe there isn't much to be gleaned from them in the failing case:

$ journalctl -b0 | grep nvme
Dec 20 12:12:13 surprise kernel: nvme nvme0: pci function 0000:01:00.0
Dec 20 12:12:13 surprise kernel: nvme nvme0: missing or invalid SUBNQN field.
Dec 20 12:12:13 surprise kernel: nvme nvme0: allocated 64 MiB host memory buffer.
Dec 20 12:12:13 surprise kernel: nvme nvme0: 15/0/0 default/read/poll queues
Dec 20 12:12:13 surprise kernel: nvme nvme0: Identify Descriptors failed (2)
Dec 20 12:12:13 surprise kernel: nvme nvme0: Identify Descriptors failed (2)
Dec 20 12:12:13 surprise kernel: nvme0n1: p1 p2 p3 p4

Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote : Status changed to Confirmed

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
Revision history for this message
Kai-Heng Feng (kaihengfeng) wrote :

Should be fixed by this commit:
commit 22802bf742c25b1e2473c70b3b99da98af65ef4d
Author: Keith Busch <email address hidden>
Date: Tue Dec 3 00:44:59 2019 +0900

    nvme: Namepace identification descriptor list is optional

    Despite NVM Express specification 1.3 requires a controller claiming to
    be 1.3 or higher implement Identify CNS 03h (Namespace Identification
    Descriptor list), the driver doesn't really need this identification in
    order to use a namespace. The code had already documented in comments
    that we're not to consider an error to this command.

    Return success if the controller provided any response to an
    namespace identification descriptors command.

    Fixes: 538af88ea7d9de24 ("nvme: make nvme_report_ns_ids propagate error back")
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=205679
    Reported-by: Ingo Brunberg <email address hidden>
    Cc: Sagi Grimberg <email address hidden>
    Cc: <email address hidden> # 5.4+
    Reviewed-by: Christoph Hellwig <email address hidden>
    Signed-off-by: Keith Busch <email address hidden>

It's in upstream stable kernel so we'll get this update soon.

Revision history for this message
Dan Watkins (oddbloke) wrote :

Excellent, thanks for the update!

Revision history for this message
Julian Einwag (jeinwag) wrote :

Are there any news on this? I'm experiencing the exact same problem with Ubuntu 20.10 and Kernel 5.4.0-65, Seagate Nytro XM1441 Datacenter drives.
Also tried 5.8 from the HWE stack, didn't help either. The drives work with Kernel 5.3.13.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.