2021-08-17 15:13:23

by Paul Menzel

[permalink] [raw]
Subject: SK hynix BC511: warning: nvme nvme0: missing or invalid SUBNQN field.

Dear Linux folks,


On a Dell OptiPlex 7780 AIO/04G47W (BIOS 1.6.3 03/08/2021) Linux 5.10.47
shows the warning below:

$ dmesg | grep nvme
[ 3.015392] nvme 0000:02:00.0: platform quirk: setting simple
suspend
[ 3.021861] nvme nvme0: pci function 0000:02:00.0
[ 3.026593] ahci 0000:00:17.0: version 3.0
[ 3.026922] ahci 0000:00:17.0: AHCI 0001.0301 32 slots 1 ports 6
Gbps 0x1 impl SATA mode
[ 3.035020] ahci 0000:00:17.0: flags: 64bit ncq sntf pm clo only
pio slum part ems deso sadm sds apst
[ 3.035219] nvme nvme0: missing or invalid SUBNQN field.
[ 3.044518] scsi host0: ahci
[ 3.051632] nvme nvme0: 12/0/0 default/read/poll queues
[ 3.052590] ata1: SATA max UDMA/133 abar m2048@0xd1339000 port
0xd1339100 irq 125
[ 3.058538] nvme0n1: p1 p2 p3

The disk model is:

$ sudo ./nvme list
Node SN Model
Namespace Usage Format
FW Rev
--------------------- --------------------
---------------------------------------- ---------
-------------------------- ---------------- --------
nvme0n1 NY11N03531080183V BC511 NVMe SK hynix
512GB 1 512.11 GB / 512.11 GB 512 B + 0 B
11004101
$ lspci -nn -s 2:00
02:00.0 Non-Volatile memory controller [0108]: SK hynix Device
[1c5c:1339]

Should it be added to the quirk list in `drivers/nvme/host/pci.c` or is
it a real issues, the manufacturer should fix? If so, do you have SK
Hynix contacts?


Kind regards,

Paul


2021-08-17 16:18:38

by Keith Busch

[permalink] [raw]
Subject: Re: SK hynix BC511: warning: nvme nvme0: missing or invalid SUBNQN field.

On Tue, Aug 17, 2021 at 05:10:40PM +0200, Paul Menzel wrote:
> On a Dell OptiPlex 7780 AIO/04G47W (BIOS 1.6.3 03/08/2021) Linux 5.10.47
> shows the warning below:
>
> $ dmesg | grep nvme
> [ 3.015392] nvme 0000:02:00.0: platform quirk: setting simple suspend
> [ 3.021861] nvme nvme0: pci function 0000:02:00.0
> [ 3.026593] ahci 0000:00:17.0: version 3.0
> [ 3.026922] ahci 0000:00:17.0: AHCI 0001.0301 32 slots 1 ports 6 Gbps
> 0x1 impl SATA mode
> [ 3.035020] ahci 0000:00:17.0: flags: 64bit ncq sntf pm clo only pio
> slum part ems deso sadm sds apst
> [ 3.035219] nvme nvme0: missing or invalid SUBNQN field.
> [ 3.044518] scsi host0: ahci
> [ 3.051632] nvme nvme0: 12/0/0 default/read/poll queues
> [ 3.052590] ata1: SATA max UDMA/133 abar m2048@0xd1339000 port
> 0xd1339100 irq 125
> [ 3.058538] nvme0n1: p1 p2 p3
>
> Should it be added to the quirk list in `drivers/nvme/host/pci.c` or is it a
> real issues, the manufacturer should fix? If so, do you have SK Hynix
> contacts?

It would be great if device makers would be spec compliant, but the
driver will continue to work with the device the same whether you add
the quirk or not. The quirk just suppresses the nqn check and warning.
Feel free to add it if you don't like seeing the warning message or if
the manufacturer can't resolve the compliance issue.

2021-08-17 16:55:23

by Paul Menzel

[permalink] [raw]
Subject: Re: SK hynix BC511: warning: nvme nvme0: missing or invalid SUBNQN field.

[cc: [email protected] as it’s a Dell device]

Dear Keith,


Thank you for your prompt response.

Am 17.08.21 um 18:16 schrieb Keith Busch:
> On Tue, Aug 17, 2021 at 05:10:40PM +0200, Paul Menzel wrote:
>> On a Dell OptiPlex 7780 AIO/04G47W (BIOS 1.6.3 03/08/2021) Linux 5.10.47
>> shows the warning below:
>>
>> $ dmesg | grep nvme
>> [ 3.015392] nvme 0000:02:00.0: platform quirk: setting simple suspend
>> [ 3.021861] nvme nvme0: pci function 0000:02:00.0
>> [ 3.026593] ahci 0000:00:17.0: version 3.0
>> [ 3.026922] ahci 0000:00:17.0: AHCI 0001.0301 32 slots 1 ports 6 Gbps 0x1 impl SATA mode
>> [ 3.035020] ahci 0000:00:17.0: flags: 64bit ncq sntf pm clo only pio slum part ems deso sadm sds apst
>> [ 3.035219] nvme nvme0: missing or invalid SUBNQN field.
>> [ 3.044518] scsi host0: ahci
>> [ 3.051632] nvme nvme0: 12/0/0 default/read/poll queues
>> [ 3.052590] ata1: SATA max UDMA/133 abar m2048@0xd1339000 port 0xd1339100 irq 125
>> [ 3.058538] nvme0n1: p1 p2 p3
>>
>> Should it be added to the quirk list in `drivers/nvme/host/pci.c` or is it a
>> real issues, the manufacturer should fix? If so, do you have SK Hynix
>> contacts?
>
> It would be great if device makers would be spec compliant, but the
> driver will continue to work with the device the same whether you add
> the quirk or not.

Could you please point me to the NVMe specification section, so I can
refer to it, when contacting the manufacturer?

> The quirk just suppresses the nqn check and warning. Feel free to add
> it if you don't like seeing the warning message or if the
> manufacturer can't resolve the compliance issue.
Understood. I am going to do that, when it can’t be resolved.


Kind regards,

Paul

2021-08-17 17:05:14

by Keith Busch

[permalink] [raw]
Subject: Re: SK hynix BC511: warning: nvme nvme0: missing or invalid SUBNQN field.

On Tue, Aug 17, 2021 at 06:53:15PM +0200, Paul Menzel wrote:
> [cc: [email protected] as it’s a Dell device]
> Am 17.08.21 um 18:16 schrieb Keith Busch:
> > On Tue, Aug 17, 2021 at 05:10:40PM +0200, Paul Menzel wrote:
> > > On a Dell OptiPlex 7780 AIO/04G47W (BIOS 1.6.3 03/08/2021) Linux 5.10.47
> > > shows the warning below:
> > >
> > > $ dmesg | grep nvme
> > > [ 3.015392] nvme 0000:02:00.0: platform quirk: setting simple suspend
> > > [ 3.021861] nvme nvme0: pci function 0000:02:00.0
> > > [ 3.026593] ahci 0000:00:17.0: version 3.0
> > > [ 3.026922] ahci 0000:00:17.0: AHCI 0001.0301 32 slots 1 ports 6 Gbps 0x1 impl SATA mode
> > > [ 3.035020] ahci 0000:00:17.0: flags: 64bit ncq sntf pm clo only pio slum part ems deso sadm sds apst
> > > [ 3.035219] nvme nvme0: missing or invalid SUBNQN field.
> > > [ 3.044518] scsi host0: ahci
> > > [ 3.051632] nvme nvme0: 12/0/0 default/read/poll queues
> > > [ 3.052590] ata1: SATA max UDMA/133 abar m2048@0xd1339000 port 0xd1339100 irq 125
> > > [ 3.058538] nvme0n1: p1 p2 p3
> > >
> > > Should it be added to the quirk list in `drivers/nvme/host/pci.c` or is it a
> > > real issues, the manufacturer should fix? If so, do you have SK Hynix
> > > contacts?
> >
> > It would be great if device makers would be spec compliant, but the
> > driver will continue to work with the device the same whether you add
> > the quirk or not.
>
> Could you please point me to the NVMe specification section, so I can refer
> to it, when contacting the manufacturer?

In the section for "Identify Controller Data Structure" (section
5.17.2.1, figure 257 in spec version 2.0), the NQN definition says:

"Support for this field is mandatory if the controller supports revision
1.2.1 or later"

The driver does confirm the controller's reported revision meets this
requirement before emitting the warning.

2021-10-11 16:28:10

by Paul Menzel

[permalink] [raw]
Subject: Re: SK hynix BC511: warning: nvme nvme0: missing or invalid SUBNQN field.

Dear Keith,


Am 17.08.21 um 19:02 schrieb Keith Busch:
> On Tue, Aug 17, 2021 at 06:53:15PM +0200, Paul Menzel wrote:
>> [cc: [email protected] as it’s a Dell device]
>> Am 17.08.21 um 18:16 schrieb Keith Busch:
>>> On Tue, Aug 17, 2021 at 05:10:40PM +0200, Paul Menzel wrote:
>>>> On a Dell OptiPlex 7780 AIO/04G47W (BIOS 1.6.3 03/08/2021) Linux 5.10.47
>>>> shows the warning below:
>>>>
>>>> $ dmesg | grep nvme
>>>> [ 3.015392] nvme 0000:02:00.0: platform quirk: setting simple suspend
>>>> [ 3.021861] nvme nvme0: pci function 0000:02:00.0
>>>> [ 3.026593] ahci 0000:00:17.0: version 3.0
>>>> [ 3.026922] ahci 0000:00:17.0: AHCI 0001.0301 32 slots 1 ports 6 Gbps 0x1 impl SATA mode
>>>> [ 3.035020] ahci 0000:00:17.0: flags: 64bit ncq sntf pm clo only pio slum part ems deso sadm sds apst
>>>> [ 3.035219] nvme nvme0: missing or invalid SUBNQN field.
>>>> [ 3.044518] scsi host0: ahci
>>>> [ 3.051632] nvme nvme0: 12/0/0 default/read/poll queues
>>>> [ 3.052590] ata1: SATA max UDMA/133 abar m2048@0xd1339000 port 0xd1339100 irq 125
>>>> [ 3.058538] nvme0n1: p1 p2 p3
>>>>
>>>> Should it be added to the quirk list in `drivers/nvme/host/pci.c` or is it a
>>>> real issues, the manufacturer should fix? If so, do you have SK Hynix
>>>> contacts?
>>>
>>> It would be great if device makers would be spec compliant, but the
>>> driver will continue to work with the device the same whether you add
>>> the quirk or not.
>>
>> Could you please point me to the NVMe specification section, so I can refer
>> to it, when contacting the manufacturer?
>
> In the section for "Identify Controller Data Structure" (section
> 5.17.2.1, figure 257 in spec version 2.0), the NQN definition says:
>
> "Support for this field is mandatory if the controller supports revision
> 1.2.1 or later"
>
> The driver does confirm the controller's reported revision meets this
> requirement before emitting the warning.

The Dell support came back to me, and said, that Hynix refuses to
publish a fixed firmware unless I show them a use case, where I need
that field.

Can somebody think of a use case, and why this field was made mandatory
in the specification?


Kind regards,

Paul

2021-10-11 18:06:06

by Keith Busch

[permalink] [raw]
Subject: Re: SK hynix BC511: warning: nvme nvme0: missing or invalid SUBNQN field.

On Mon, Oct 11, 2021 at 03:08:15PM +0200, Paul Menzel wrote:
> Am 17.08.21 um 19:02 schrieb Keith Busch:
> >
> > In the section for "Identify Controller Data Structure" (section
> > 5.17.2.1, figure 257 in spec version 2.0), the NQN definition says:
> >
> > "Support for this field is mandatory if the controller supports revision
> > 1.2.1 or later"
> >
> > The driver does confirm the controller's reported revision meets this
> > requirement before emitting the warning.
>
> The Dell support came back to me, and said, that Hynix refuses to publish a
> fixed firmware unless I show them a use case, where I need that field.
>
> Can somebody think of a use case,

Spec compliance certification. UNH test 1.1 case 2, for example.

> and why this field was made mandatory in
> the specification?

A dependable way to uniquely identify a specific device is generally
useful. The NVMe TWG determined the previous methods were inadequate.

The linux kernel will continue to use the device without this capability
since the low level driver doesn't need it to interact with a
controller, but the driver will warn about the non-compliance in case
host software is relying on this field.

2021-10-19 09:04:31

by Paul Menzel

[permalink] [raw]
Subject: Re: SK hynix BC511: warning: nvme nvme0: missing or invalid SUBNQN field.

Dear Keith,


Thank you for your reply?


Am 11.10.21 um 20:00 schrieb Keith Busch:
> On Mon, Oct 11, 2021 at 03:08:15PM +0200, Paul Menzel wrote:
>> Am 17.08.21 um 19:02 schrieb Keith Busch:
>>>
>>> In the section for "Identify Controller Data Structure" (section
>>> 5.17.2.1, figure 257 in spec version 2.0), the NQN definition says:
>>>
>>> "Support for this field is mandatory if the controller supports revision
>>> 1.2.1 or later"
>>>
>>> The driver does confirm the controller's reported revision meets this
>>> requirement before emitting the warning.
>>
>> The Dell support came back to me, and said, that Hynix refuses to publish a
>> fixed firmware unless I show them a use case, where I need that field.
>>
>> Can somebody think of a use case,
>
> Spec compliance certification. UNH test 1.1 case 2, for example.
>
>> and why this field was made mandatory in the specification?
>
> A dependable way to uniquely identify a specific device is generally
> useful. The NVMe TWG determined the previous methods were inadequate.

Do you know, why the serial number, shown by `nvme list`, was deemed
inadequate to uniquely identify a specific device?

> The linux kernel will continue to use the device without this capability
> since the low level driver doesn't need it to interact with a
> controller, but the driver will warn about the non-compliance in case
> host software is relying on this field.

Yes, I understand.


Kind regards,

Paul