Re: [PATCH] fix: nvme_update_ns_info method should be called even if nvme_ms_ids_equal return false

金韬
2022-04-08T08:35:53Z

Yes, the ID keeps changing if I do more suspend cycles. But numbers are
the same, from 0100000000000000 to 0000000000000001.

[ 26.574986] nvme nvme0: 8/0/0 default/read/poll queues
[ 26.577001] eui changed from 0100000000000000 to 0000000000000001
[ 26.577003] nvme nvme0: identifiers changed for nsid 1
[ 2467.069659] eui changed from 0100000000000000 to 0000000000000001
[ 2467.069660] nvme nvme0: identifiers changed for nsid 1
[ 2500.790058] eui changed from 0100000000000000 to 0000000000000001
[ 2500.790059] nvme nvme0: identifiers changed for nsid 1

I've changed two SSDs(Hikvision C2000eco(current) 1T, Gloway NVMe Basic
version 1T) and they behave the same. I think is a device-specific problem.

The model is Lenovo Thinkbook 14p (amd ryzen 5800H + 32G). The suspend
problem occurs in all Linux distributions like Ubuntu/Debian/Arch/Manjaro.

Current using: Manjaro Linux 21.2.5 (Linux 5.17.1 stable kernel,
directly downloaded from kernel.org)

> lspci -k:
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne
Root Complex
Subsystem: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne Root Complex
00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne IOMMU
Subsystem: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne IOMMU
00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe
Dummy Host Bridge
00:01.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne
PCIe GPP Bridge
Kernel driver in use: pcieport
00:01.3 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne
PCIe GPP Bridge
Kernel driver in use: pcieport
00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe
Dummy Host Bridge
00:02.4 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne
PCIe GPP Bridge
Kernel driver in use: pcieport
00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe
Dummy Host Bridge
00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir Internal
PCIe GPP Bridge to Bus
Kernel driver in use: pcieport
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller
(rev 51)
Subsystem: Lenovo Device 3846
Kernel driver in use: piix4_smbus
Kernel modules: i2c_piix4, sp5100_tco
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge
(rev 51)
Subsystem: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data
Fabric; Function 0
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data
Fabric; Function 1
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data
Fabric; Function 2
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data
Fabric; Function 3
Kernel driver in use: k10temp
Kernel modules: k10temp
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data
Fabric; Function 4
00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data
Fabric; Function 5
00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data
Fabric; Function 6
00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data
Fabric; Function 7
01:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)
Subsystem: Intel Corporation Wi-Fi 6 AX200NGW
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
02:00.0 SD Host controller: O2 Micro, Inc. SD/MMC Card Reader Controller
(rev 01)
Subsystem: O2 Micro, Inc. Device 0002
Kernel driver in use: sdhci-pci
Kernel modules: sdhci_pci
03:00.0 Non-Volatile memory controller: MAXIO Technology (Hangzhou) Ltd.
NVMe SSD Controller MAP1202 (rev 01)
Subsystem: MAXIO Technology (Hangzhou) Ltd. NVMe SSD Controller MAP1202
Kernel driver in use: nvme
04:00.0 VGA compatible controller: Advanced Micro Devices, Inc.
[AMD/ATI] Cezanne (rev c5)
Subsystem: Lenovo Device 3807
Kernel driver in use: amdgpu
Kernel modules: amdgpu
04:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Renoir
Radeon High Definition Audio Controller
Subsystem: Lenovo Device 3814
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
04:00.2 Encryption controller: Advanced Micro Devices, Inc. [AMD] Family
17h (Models 10h-1fh) Platform Security Processor
Subsystem: Lenovo Device 3831
Kernel driver in use: ccp
Kernel modules: ccp
04:00.3 USB controller: Advanced Micro Devices, Inc. [AMD]
Renoir/Cezanne USB 3.1
Subsystem: Lenovo Device 3839
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci
04:00.4 USB controller: Advanced Micro Devices, Inc. [AMD]
Renoir/Cezanne USB 3.1
Subsystem: Lenovo Device 3838
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci
04:00.5 Multimedia controller: Advanced Micro Devices, Inc. [AMD]
ACP/ACP3X/ACP6x Audio Coprocessor (rev 01)
Subsystem: Lenovo Device 3832
Kernel modules: snd_pci_acp3x, snd_rn_pci_acp3x, snd_pci_acp5x
04:00.6 Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h/19h
HD Audio Controller
Subsystem: Lenovo Device 3833
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel

在 2022/4/8 16:07, Christoph Hellwig 写道:
> On Fri, Apr 08, 2022 at 03:56:49PM +0800, 金韬 wrote:
>> This is output from dmesg. Seems that "eui" has changed.
>>
>> [ 2.086226] loop0: detected capacity change from 0 to 8
>> [ 26.577001] eui changed from 0100000000000000 to 0000000000000001
>> [ 26.577003] nvme nvme0: identifiers changed for nsid 1
>
> Ok, looks like the device is broken and changes the EUID after power
> cycles. Can you send the output of lspci -v?
>
> Also just out of curiousity, does the ID keep changing if you do more
> suspend cycles?
>