X1 Extreme: only one of the two SSDs is loaded

Bug #1811755 reported by Tim Penhey on 2019-01-15
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Medium
Anthony Wong
Bionic
Medium
Unassigned
Cosmic
Medium
Unassigned

Bug Description

[Impact]
On Thinkpad X1 Extreme with two SSDs, if NQN in the firmware are
identical, then only one drive can be seen. NQN is supposed to be unique
but some Intel drives do not follow that.

[Fix]
The device-supplied subnqn is ignored and one will be generated as if
the field is empty.

The upstream patch conflicts with a value in 'enum nvme_quirks' that we
added in a SAUCE patch, changed that from (1<<8) to (1<<15).

[Test]
With this fix, both drives can be seen.

[Regression Potential]
The fix limits to Intel 760p/Pro 7600p SSD, and the fix has been
verified by the bug reporter.

---------

I bought a new Thinkpad X1 Extreme, and had it come with two SSDs, one 256G and the other 512G with the intention of keeping the windows on the 256G disk and using the 512G for linux.

When dealing with the installer, it only ever saw one of the SSDs. I did manged to get bionic installed on the 512, but on boot, sometimes it doesn't find the 512G disk and I just get a blank screen. After a hard power-off, and reboot, it drops into the grub selector, and choosing linux, it failed again, but this time dropped into a VT.

ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: linux-image-4.15.0-43-generic 4.15.0-43.46
ProcVersionSignature: Ubuntu 4.15.0-43.46-generic 4.15.18
Uname: Linux 4.15.0-43-generic x86_64
ApportVersion: 2.20.9-0ubuntu7.5
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC1: tim 2003 F.... pulseaudio
 /dev/snd/controlC0: tim 2003 F.... pulseaudio
CurrentDesktop: ubuntu:GNOME
Date: Tue Jan 15 18:53:34 2019
InstallationDate: Installed on 2019-01-14 (0 days ago)
InstallationMedia: Ubuntu 18.04.2 LTS "Bionic Beaver" - Beta amd64 (20190109)
MachineType: LENOVO 20MFCTO1WW
ProcFB: 0 nouveaufb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.15.0-43-generic root=UUID=9254da2f-0220-4b41-8770-ae4b0df0d114 ro quiet splash vt.handoff=1
RelatedPackageVersions:
 linux-restricted-modules-4.15.0-43-generic N/A
 linux-backports-modules-4.15.0-43-generic N/A
 linux-firmware 1.173.3
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 12/21/2018
dmi.bios.vendor: LENOVO
dmi.bios.version: N2EET35W (1.17 )
dmi.board.asset.tag: Not Available
dmi.board.name: 20MFCTO1WW
dmi.board.vendor: LENOVO
dmi.board.version: SDK0R32862 WIN
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: None
dmi.modalias: dmi:bvnLENOVO:bvrN2EET35W(1.17):bd12/21/2018:svnLENOVO:pn20MFCTO1WW:pvrThinkPadX1Extreme:rvnLENOVO:rn20MFCTO1WW:rvrSDK0R32862WIN:cvnLENOVO:ct10:cvrNone:
dmi.product.family: ThinkPad X1 Extreme
dmi.product.name: 20MFCTO1WW
dmi.product.version: ThinkPad X1 Extreme
dmi.sys.vendor: LENOVO

Tim Penhey (thumper) wrote :

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
Brad Figg (brad-figg) on 2019-01-15
Changed in linux (Ubuntu):
assignee: nobody → Anthony Wong (anthonywong)
Kai-Heng Feng (kaihengfeng) wrote :

This commit can fix your issue:

commit 6299358d198a0635da2dd3c4b3ec37789e811e44
Author: James Dingwall <email address hidden>
Date: Tue Jan 8 10:20:51 2019 -0700

    nvme: introduce NVME_QUIRK_IGNORE_DEV_SUBNQN

    If a device provides an NQN it is expected to be globally unique.
    Unfortunately some firmware revisions for Intel 760p/Pro 7600p devices did
    not satisfy this requirement. In these circumstances if a system has >1
    affected device then only one device is enabled. If this quirk is enabled
    then the device supplied subnqn is ignored and we fallback to generating
    one as if the field was empty. In this case we also suppress the version
    check so we don't print a warning when the quirk is enabled.

Anthony Wong (anthonywong) wrote :

Will you ever be able to boot into your 512G disk? If you can, please try the test kernel in http://172.104.124.10/lp1811755/. Otherwise I'm afraid you need a new installer image with a test kernel.

Changed in linux (Ubuntu):
importance: Undecided → Medium
Tim Penhey (thumper) wrote :

Yes, I can boot into the 512G disk approximately 50% of the time :-)

Tim Penhey (thumper) wrote :

hit the following error installing the test kernel

tim@terry:~/Downloads$ ls *.deb
linux-headers-4.15.0-43-generic_4.15.0-43.46+lp1811755_amd64.deb
linux-image-unsigned-4.15.0-43-generic_4.15.0-43.46+lp1811755_amd64.deb
linux-modules-4.15.0-43-generic_4.15.0-43.46+lp1811755_amd64.deb
linux-modules-extra-4.15.0-43-generic_4.15.0-43.46+lp1811755_amd64.deb
tim@terry:~/Downloads$ sudo dpkg -i *.deb
(Reading database ... 214537 files and directories currently installed.)
Preparing to unpack linux-headers-4.15.0-43-generic_4.15.0-43.46+lp1811755_amd64.deb ...
Unpacking linux-headers-4.15.0-43-generic (4.15.0-43.46+lp1811755) over (4.15.0-43.46+lp1811755) ...
dpkg: regarding linux-image-unsigned-4.15.0-43-generic_4.15.0-43.46+lp1811755_amd64.deb containing linux-image-unsigned-4.15.0-43-generic:
 linux-image-unsigned-4.15.0-43-generic conflicts with linux-image-4.15.0-43-generic
  linux-image-4.15.0-43-generic (version 4.15.0-43.46) is present and installed.

dpkg: error processing archive linux-image-unsigned-4.15.0-43-generic_4.15.0-43.46+lp1811755_amd64.deb (--install):
 conflicting packages - not installing linux-image-unsigned-4.15.0-43-generic
Preparing to unpack linux-modules-4.15.0-43-generic_4.15.0-43.46+lp1811755_amd64.deb ...
Unpacking linux-modules-4.15.0-43-generic (4.15.0-43.46+lp1811755) over (4.15.0-43.46+lp1811755) ...
Preparing to unpack linux-modules-extra-4.15.0-43-generic_4.15.0-43.46+lp1811755_amd64.deb ...
Unpacking linux-modules-extra-4.15.0-43-generic (4.15.0-43.46+lp1811755) over (4.15.0-43.46+lp1811755) ...
Setting up linux-headers-4.15.0-43-generic (4.15.0-43.46+lp1811755) ...
Setting up linux-modules-4.15.0-43-generic (4.15.0-43.46+lp1811755) ...
Setting up linux-modules-extra-4.15.0-43-generic (4.15.0-43.46+lp1811755) ...
Processing triggers for linux-image-4.15.0-43-generic (4.15.0-43.46) ...
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-4.15.0-43-generic
/etc/kernel/postinst.d/zz-update-grub:
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-43-generic
Found initrd image: /boot/initrd.img-4.15.0-43-generic
Adding boot menu entry for EFI firmware configuration
done
Errors were encountered while processing:
 linux-image-unsigned-4.15.0-43-generic_4.15.0-43.46+lp1811755_amd64.deb
tim@terry:~/Downloads$

Tim Penhey (thumper) wrote :

got the packages installed in the end, and so far has booted every time.

description: updated
Seth Forshee (sforshee) on 2019-01-18
Changed in linux (Ubuntu):
status: Confirmed → Fix Committed
Stefan Bader (smb) on 2019-01-21
Changed in linux (Ubuntu Bionic):
importance: Undecided → Medium
Stefan Bader (smb) on 2019-01-21
Changed in linux (Ubuntu Bionic):
status: New → Triaged
Changed in linux (Ubuntu Cosmic):
status: New → Triaged
importance: Undecided → Medium
Changed in linux (Ubuntu Cosmic):
status: Triaged → Fix Committed
Changed in linux (Ubuntu Bionic):
status: Triaged → Fix Committed
Launchpad Janitor (janitor) wrote :
Download full text (14.1 KiB)

This bug was fixed in the package linux - 4.19.0-12.13

---------------
linux (4.19.0-12.13) disco; urgency=medium

  * linux: 4.19.0-12.13 -proposed tracker (LP: #1813664)

  * kernel oops in bcache module (LP: #1793901)
    - SAUCE: bcache: never writeback a discard operation

  * Disco update: 4.19.18 upstream stable release (LP: #1813611)
    - ipv6: Consider sk_bound_dev_if when binding a socket to a v4 mapped address
    - mlxsw: spectrum: Disable lag port TX before removing it
    - mlxsw: spectrum_switchdev: Set PVID correctly during VLAN deletion
    - net: dsa: mv88x6xxx: mv88e6390 errata
    - net, skbuff: do not prefer skb allocation fails early
    - qmi_wwan: add MTU default to qmap network interface
    - ipv6: Take rcu_read_lock in __inet6_bind for mapped addresses
    - net: clear skb->tstamp in bridge forwarding path
    - netfilter: ipset: Allow matching on destination MAC address for mac and
      ipmac sets
    - gpio: pl061: Move irq_chip definition inside struct pl061
    - drm/amd/display: Guard against null stream_state in set_crc_source
    - drm/amdkfd: fix interrupt spin lock
    - ixgbe: allow IPsec Tx offload in VEPA mode
    - platform/x86: asus-wmi: Tell the EC the OS will handle the display off
      hotkey
    - e1000e: allow non-monotonic SYSTIM readings
    - usb: typec: tcpm: Do not disconnect link for self powered devices
    - selftests/bpf: enable (uncomment) all tests in test_libbpf.sh
    - of: overlay: add missing of_node_put() after add new node to changeset
    - writeback: don't decrement wb->refcnt if !wb->bdi
    - serial: set suppress_bind_attrs flag only if builtin
    - bpf: Allow narrow loads with offset > 0
    - ALSA: oxfw: add support for APOGEE duet FireWire
    - x86/mce: Fix -Wmissing-prototypes warnings
    - MIPS: SiByte: Enable swiotlb for SWARM, LittleSur and BigSur
    - crypto: ecc - regularize scalar for scalar multiplication
    - arm64: perf: set suppress_bind_attrs flag to true
    - drm/atomic-helper: Complete fake_commit->flip_done potentially earlier
    - clk: meson: meson8b: fix incorrect divider mapping in cpu_scale_table
    - samples: bpf: fix: error handling regarding kprobe_events
    - usb: gadget: udc: renesas_usb3: add a safety connection way for
      forced_b_device
    - fpga: altera-cvp: fix probing for multiple FPGAs on the bus
    - selinux: always allow mounting submounts
    - ASoC: pcm3168a: Don't disable pcm3168a when CONFIG_PM defined
    - scsi: qedi: Check for session online before getting iSCSI TLV data.
    - drm/amdgpu: Reorder uvd ring init before uvd resume
    - rxe: IB_WR_REG_MR does not capture MR's iova field
    - efi/libstub: Disable some warnings for x86{,_64}
    - jffs2: Fix use of uninitialized delayed_work, lockdep breakage
    - clk: imx: make mux parent strings const
    - pstore/ram: Do not treat empty buffers as valid
    - media: uvcvideo: Refactor teardown of uvc on USB disconnect
    - powerpc/xmon: Fix invocation inside lock region
    - powerpc/pseries/cpuidle: Fix preempt warning
    - media: firewire: Fix app_info parameter type in avc_ca{,_app}_info
    - ASoC: use dma_ops of parent device for acp_audio_dma
    - media: ve...

Changed in linux (Ubuntu):
status: Fix Committed → Fix Released

Will this fix make its way back into the bionic-updates?

Tim

Anthony Wong (anthonywong) wrote :

Yes, the fix will be included in the next kernel SRU, bionic-proposed kernel will be available next week and target to be released to bionic-updates on Feb 25.

Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-cosmic' to 'verification-done-cosmic'. If the problem still exists, change the tag 'verification-needed-cosmic' to 'verification-failed-cosmic'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-cosmic
Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-bionic' to 'verification-done-bionic'. If the problem still exists, change the tag 'verification-needed-bionic' to 'verification-failed-bionic'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-bionic
Tim Penhey (thumper) wrote :

It seems my install was missing the linux-generic package. After installing that I was able to get linux-generic 4.15.0.46.48 from bionic-proposed.

Installing this removed the windows boot option from my grub config.

Rebooting 12 times, 10 times were good, twice I got dumped into initramfs. Photo attached.

tags: added: verification-failed-bionic
removed: verification-needed-bionic
Kai-Heng Feng (kaihengfeng) wrote :

Hi Tim,

Would it be possible for you to test mainline kernel [1]? It probably requires more commits to be backported. But first let's make sure it's fully fixed in mainline kernel.

[1] https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0-rc7/

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers