[PATCH] Add quirk for ADATA SX6000PNP

Daniel Wagner dwagner at suse.de
Fri Feb 24 00:57:25 PST 2023


On Fri, Feb 24, 2023 at 09:45:44AM +0300, Ivan Rubinov wrote:
> (base)  ✘ user at arch  ~  sudo nvme id-ctrl /dev/nvme0
> NVME Identify Controller:
> vid       : 0x10ec
> ssvid     : 0x10ec
> sn        : 2K33292NBAUE
> mn        : ADATA SX6000PNP
> fr        : V9002s94
> rab       : 0
> ieee      : 00e04c
> cmic      : 0
> mdts      : 5
> cntlid    : 0x1
> ver       : 0x10300
> rtd3r     : 0x182b8
> rtd3e     : 0x1e8480
> oaes      : 0
> ctratt    : 0
> rrls      : 0
> cntrltype : 0
> fguid     : 00000000-0000-0000-0000-000000000000
> crdt1     : 0
> crdt2     : 0
> crdt3     : 0
> nvmsr     : 0
> vwci      : 0
> mec       : 0
> oacs      : 0x16
> acl       : 0
> aerl      : 3
> frmw      : 0x2
> lpa       : 0x2
> elpe      : 7
> npss      : 4
> avscc     : 0x1
> apsta     : 0x1
> wctemp    : 373
> cctemp    : 383
> mtfa      : 20
> hmpre     : 16384
> hmmin     : 16384
> tnvmcap   : 0
> unvmcap   : 0
> rpmbs     : 0
> edstt     : 5
> dsto      : 1
> fwug      : 1
> kas       : 0
> hctma     : 0
> mntmt     : 0
> mxtmt     : 0
> sanicap   : 0
> hmminds   : 0
> hmmaxd    : 0
> nsetidmax : 0
> endgidmax : 0
> anatt     : 0
> anacap    : 0
> anagrpmax : 0
> nanagrpid : 0
> pels      : 0
> domainid  : 0
> megcap    : 0
> sqes      : 0x66
> cqes      : 0x44
> maxcmd    : 0
> nn        : 1
> oncs      : 0x14
> fuses     : 0
> fna       : 0
> vwc       : 0x1
> awun      : 0
> awupf     : 0
> icsvscc   : 1
> nwpc      : 0
> acwu      : 0
> ocfs      : 0
> sgls      : 0
> mnan      : 0
> maxdna    : 0
> maxcna    : 0
> subnqn    : nqn.2018-05.com.example:nvme:nvm-subsystem-OUI00E04C2K33292NBAUE
> ioccsz    : 0
> iorcsz    : 0
> icdoff    : 0
> fcatt     : 0
> msdbd     : 0
> ofcs      : 0
> ps      0 : mp:8.00W operational enlat:0 exlat:50000 rrt:0 rrl:0
>             rwt:0 rwl:0 idle_power:- active_power:-
>             active_power_workload:-
> ps      1 : mp:4.00W operational enlat:0 exlat:50000 rrt:1 rrl:1
>             rwt:1 rwl:1 idle_power:- active_power:-
>             active_power_workload:-
> ps      2 : mp:3.00W operational enlat:0 exlat:50000 rrt:2 rrl:2
>             rwt:2 rwl:2 idle_power:- active_power:-
>             active_power_workload:-
> ps      3 : mp:0.0500W non-operational enlat:4000 exlat:50000 rrt:3 rrl:3
>             rwt:3 rwl:3 idle_power:- active_power:-
>             active_power_workload:-
> ps      4 : mp:0.0080W non-operational enlat:8000 exlat:100000 rrt:4 rrl:4
>             rwt:4 rwl:4 idle_power:- active_power:-
>             active_power_workload:-
> (base)  user at arch  ~  sudo nvme id-ctrl /dev/nvme1
> NVME Identify Controller:
> vid       : 0x10ec
> ssvid     : 0x10ec
> sn        : 2K3329Q7H7A2
> mn        : ADATA SX6000PNP
> fr        : V9002s94
> rab       : 0
> ieee      : 00e04c
> cmic      : 0
> mdts      : 5
> cntlid    : 0x1
> ver       : 0x10300
> rtd3r     : 0x182b8
> rtd3e     : 0x1e8480
> oaes      : 0
> ctratt    : 0
> rrls      : 0
> cntrltype : 0
> fguid     : 00000000-0000-0000-0000-000000000000
> crdt1     : 0
> crdt2     : 0
> crdt3     : 0
> nvmsr     : 0
> vwci      : 0
> mec       : 0
> oacs      : 0x16
> acl       : 0
> aerl      : 3
> frmw      : 0x2
> lpa       : 0x2
> elpe      : 7
> npss      : 4
> avscc     : 0x1
> apsta     : 0x1
> wctemp    : 373
> cctemp    : 383
> mtfa      : 20
> hmpre     : 16384
> hmmin     : 16384
> tnvmcap   : 0
> unvmcap   : 0
> rpmbs     : 0
> edstt     : 5
> dsto      : 1
> fwug      : 1
> kas       : 0
> hctma     : 0
> mntmt     : 0
> mxtmt     : 0
> sanicap   : 0
> hmminds   : 0
> hmmaxd    : 0
> nsetidmax : 0
> endgidmax : 0
> anatt     : 0
> anacap    : 0
> anagrpmax : 0
> nanagrpid : 0
> pels      : 0
> domainid  : 0
> megcap    : 0
> sqes      : 0x66
> cqes      : 0x44
> maxcmd    : 0
> nn        : 1
> oncs      : 0x14
> fuses     : 0
> fna       : 0
> vwc       : 0x1
> awun      : 0
> awupf     : 0
> icsvscc   : 1
> nwpc      : 0
> acwu      : 0
> ocfs      : 0
> sgls      : 0
> mnan      : 0
> maxdna    : 0
> maxcna    : 0
> subnqn    : nqn.2018-05.com.example:nvme:nvm-subsystem-OUI00E04C2K3329Q7H7A2
> ioccsz    : 0
> iorcsz    : 0
> icdoff    : 0
> fcatt     : 0
> msdbd     : 0
> ofcs      : 0
> ps      0 : mp:8.00W operational enlat:0 exlat:50000 rrt:0 rrl:0
>             rwt:0 rwl:0 idle_power:- active_power:-
>             active_power_workload:-
> ps      1 : mp:4.00W operational enlat:0 exlat:50000 rrt:1 rrl:1
>             rwt:1 rwl:1 idle_power:- active_power:-
>             active_power_workload:-
> ps      2 : mp:3.00W operational enlat:0 exlat:50000 rrt:2 rrl:2
>             rwt:2 rwl:2 idle_power:- active_power:-
>             active_power_workload:-
> ps      3 : mp:0.0500W non-operational enlat:4000 exlat:50000 rrt:3 rrl:3
>             rwt:3 rwl:3 idle_power:- active_power:-
>             active_power_workload:-
> ps      4 : mp:0.0080W non-operational enlat:8000 exlat:100000 rrt:4 rrl:4
>             rwt:4 rwl:4 idle_power:- active_power:-
>             active_power_workload:-

The subnqn string is used to lookup and uniquely identify a subsys. The two
subnqn are unique and after reading up in the spec (chapter 4.5) they are
valid (the Linux kernel doesn't care about the format as long these strings are
unique).

If the quirk is enabled, the subnqn should be

  nvme0: nqn.2014.08.org.nvmexpress:10ec10ec2K33292NBAUEADATA SX6000PNP
  nvme1: nqn.2014.08.org.nvmexpress:10ec10ec2K3329Q7H7A2ADATA SX6000PNP

without the quirk:

  nvme0: nqn.2018-05.com.example:nvme:nvm-subsystem-OUI00E04C2K33292NBAUE
  nvme1: nqn.2018-05.com.example:nvme:nvm-subsystem-OUI00E04C2K2129Q696LA

And this is all what the quirk does. I must oversee why this is needed.



More information about the Linux-nvme mailing list