Intel P4608 (Oracle f640) doesn't show both NVMe devices. globally duplicate IDs for nsid

Keith Busch kbusch at kernel.org
Fri Mar 31 09:51:12 PDT 2023


On Fri, Mar 31, 2023 at 02:01:22PM +0200, Pankaj Raghav wrote:
> On Wed, Mar 29, 2023 at 09:36:43AM -0600, Keith Busch wrote:
> > On Wed, Mar 29, 2023 at 12:36:23PM +0200, Olav Gjerde wrote:
> > > Hi,
> > > 
> > > I just upgraded to debian-testing which runs Linux 6.1 on a machine
> > > here and I have trouble with my NVME card which has two NVMe drives. I
> > > find the following error message in
> > > dmesg: nvme nvme2: globally duplicate IDs for nsid 1
> > > 
> > > I googled this error message and came over the explanation here:
> > > https://bugzilla.kernel.org/show_bug.cgi?id=216049
> > > 
> > > lspci returns this,
> > > 
> > > 87:00.0 Non-Volatile memory controller [0108]: Intel Corporation NVMe
> > > Datacenter SSD [3DNAND, Beta Rock Controller] [8086:0a54]
> > > 88:00.0 Non-Volatile memory controller [0108]: Intel Corporation NVMe
> > > Datacenter SSD [3DNAND, Beta Rock Controller] [8086:0a54]
> > > 
> > > I have checked the master source code, and I see no changes recently,
> > > so my guess is that the fix is adding NVME_QUIRK_BOGUS_NID
> > > to the following section:
> > > { PCI_VDEVICE(INTEL, 0x0a54), /* Intel P4500/P4600 */
> > >      .driver_data = NVME_QUIRK_STRIPE_SIZE |
> > >      NVME_QUIRK_DEALLOCATE_ZEROES |
> > >       NVME_QUIRK_IGNORE_DEV_SUBNQN, },
> > > 
> > > in drivers/nvme/host/pci.c
> > 
> > Yeah, NVME_QUIRK_BOGUS_NID is needed. The only problem is this particular model
> > shares the same VID:DID as the 4500/4600 that do not have this problem. I guess
> > none of them get to use those features...
> Can this be then moved to core_quirks in core.c then with its specific mn?

If someone has a comprehensive model list, then sure, but that might not be
feasible. There were different model names for various capacities, endurance,
and rebranding. Best to just reduce to the lowest commonality.



More information about the Linux-nvme mailing list