fix atomic limits check v2

alan.adamson at oracle.com alan.adamson at oracle.com
Wed Jun 25 10:04:55 PDT 2025


On 6/24/25 11:39 PM, Christoph Hellwig wrote:
> Hi all,
>
> this series tries to fix the atomics limit check to limit it to
> the per-controller values and to the controller probing.
>
> I think this should solve the root cause of the report from Yi Zhang,
> but needs new verification.
>
> Changes since v1:
>   - initialize subsys->awupf in nvme_init_subsystem to make sure that only
>     happens once per controller
>
> Diffstat:
>   core.c |   83 +++++++++++++++++++++++++++++------------------------------------
>   nvme.h |    3 --
>   2 files changed, 39 insertions(+), 47 deletions(-)
CTRL 0 - AWUN=31 AWUPF=15    nvme0n1
CTRL 1 - AWUN=31 AWUPF=31
CTRL 2 - AWUN=15 AWUPF=7
CTRL 3 - AWUN=15 AWUPF=15
     NS - NAWUN=31 NAWUPF=15  nvme0n2
     NS - NAWUN=127 NAWUPF=63 nvme0n3

[root at localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda           8:0    0   40G  0 disk
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   39G  0 part
   └─ol-root 252:0    0   39G  0 lvm  /
sr0          11:0    1 1024M  0 rom
nvme0n1     259:2    0  250G  0 disk
nvme0n2     259:3    0  250G  0 disk
nvme0n3     259:5    0  250G  0 disk
[root at localhost ~]# nvme id-ctrl /dev/nvme0n1 | grep awupf
awupf     : 15
[root at localhost ~]# cat /sys/block/nvme0n1/queue/atomic_write_max_bytes
8192
[root at localhost ~]# nvme id-ns /dev/nvme0n2 | grep nawupf
nawupf  : 15
[root at localhost ~]# cat /sys/block/nvme0n2/queue/atomic_write_max_bytes
8192
[root at localhost ~]# nvme id-ns /dev/nvme0n3 | grep nawupf
nawupf  : 63
[root at localhost ~]# cat /sys/block/nvme0n3/queue/atomic_write_max_bytes
32768
[root at localhost ~]# dmesg | grep nvme | grep AWUPF
[    2.761599] nvme nvme2: inconsistent AWUPF, controller not added (7/15).
[    2.765669] nvme nvme1: inconsistent AWUPF, controller not added (31/15).
[root at localhost ~]#

Why was CTRL1 (nvme1) not added? AWUPF of 31 works with a 
atomic_write_max_bytes of 8192.


Alan




More information about the Linux-nvme mailing list