[18.04][config] regression: nvme and nvme_core couldn't be built as modules starting 4.15-rc2
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
High
|
Seth Forshee | ||
Bionic |
Fix Released
|
High
|
Seth Forshee |
Bug Description
Some regression was introduced into NVME-related kernel configuration by 32c662c58a9b9 into 4.15-rc2, which was pulled later into ubuntu-bionic.git
In result, "nvme" and "nvme_core" drivers are built into the kernel, we can't build them as modules. It caused incompatibility of NMVe-OF target and initiator modules (nvmet, nvme-rdma) installed by Mellanox OFED with the inbox "nvme" driver.
Root cause analysis.
In the drivers/
menuconfig NVM
bool "Open-Channel SSD target support"
depends on BLOCK && HAS_DMA && PCI
select BLK_DEV_NVME
help
Say Y here to get to enable Open-channel SSDs.
...
It means that BLK_DEV_NVME is selected to "y" when NVM (CONFIG_NVM) is selected.
NVM parameter is 2 state (on / off, i.e. "y" or "no"), it couldn't be built as a module.
So that it triggers the change of BLK_DEV_NAME=y and NVME_CORE=y
$ git blame drivers/
32c662c58a9b9 (Rakesh Pandit 2017-10-13 14:45:55 +0200 7) depends on BLOCK && HAS_DMA && PCI
32c662c58a9b9 (Rakesh Pandit 2017-10-13 14:45:55 +0200 8) select BLK_DEV_NVME
commit 32c662c58a9b9d0
Author: Rakesh Pandit <email address hidden>
Date: Fri Oct 13 14:45:55 2017 +0200
lightnvm: include NVM Express driver if OCSSD is selected for build
Because NVM needs BLK_DEV_NVME, select it automatically if we mark NVM
in config file before building kernel. Also append PCI to depends as
select doesn't automatically add dependencies.
Signed-off-by: Rakesh Pandit <email address hidden>
Signed-off-by: Matias Bjørling <email address hidden>
Signed-off-by: Jens Axboe <email address hidden>
drivers/
1 file changed, 2 insertions(+), 1 deletion(-)
$ git diff 32c662c58a9b9^
diff --git a/drivers/
index ead61a93cb4e.
--- a/drivers/
+++ b/drivers/
@@ -4,7 +4,8 @@
menuconfig NVM
bool "Open-Channel SSD target support"
- depends on BLOCK && HAS_DMA
+ depends on BLOCK && HAS_DMA && PCI
+ select BLK_DEV_NVME
help
Say Y here to get to enable Open-channel SSDs.
Proposed fix is following:
diff --git a/drivers/
index 2a953efec4e1.
--- a/drivers/
+++ b/drivers/
@@ -4,8 +4,7 @@
menuconfig NVM
bool "Open-Channel SSD target support"
- depends on BLOCK && HAS_DMA && PCI
- select BLK_DEV_NVME
+ depends on BLOCK && HAS_DMA && PCI && BLK_DEV_NVME
help
Say Y here to get to enable Open-channel SSDs.
Regards, Yurii Shestakov
---
AlsaDevices:
total 0
crw-rw---- 1 root audio 116, 1 Mar 29 17:05 seq
crw-rw---- 1 root audio 116, 33 Mar 29 17:05 timer
AplayDevices: Error: [Errno 2] No such file or directory: 'aplay': 'aplay'
ApportVersion: 2.20.9-0ubuntu1
Architecture: amd64
ArecordDevices: Error: [Errno 2] No such file or directory: 'arecord': 'arecord'
AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/seq', '/dev/snd/timer'] failed with exit code 1:
DistroRelease: Ubuntu 18.04
HibernationDevice: RESUME=
IwConfig: Error: [Errno 2] No such file or directory: 'iwconfig': 'iwconfig'
Lsusb:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
MachineType: QEMU Standard PC (Q35 + ICH9, 2009)
Package: linux (not installed)
PciMultimedia:
ProcFB:
ProcKernelCmdLine: BOOT_IMAGE=
ProcVersionSign
RelatedPackageV
linux-
linux-
linux-firmware 1.173
RfKill: Error: [Errno 2] No such file or directory: 'rfkill': 'rfkill'
Tags: bionic
Uname: Linux 4.15.0-10-generic x86_64
UnreportableReason: The report belongs to a package that is not installed.
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups:
_MarkForUpload: False
dmi.bios.date: 01/01/2011
dmi.bios.vendor: Seabios
dmi.bios.version: 0.5.1
dmi.chassis.type: 1
dmi.chassis.vendor: Bochs
dmi.modalias: dmi:bvnSeabios:
dmi.product.name: Standard PC (Q35 + ICH9, 2009)
dmi.product.
dmi.sys.vendor: QEMU
summary: |
- regression: nvme and nvme_core couldn't be build as modules starting - 4.15-rc2 + [18.04][config] regression: nvme and nvme_core couldn't be build as + modules starting 4.15-rc2 |
summary: |
- [18.04][config] regression: nvme and nvme_core couldn't be build as + [18.04][config] regression: nvme and nvme_core couldn't be built as modules starting 4.15-rc2 |
Changed in linux (Ubuntu): | |
importance: | Undecided → Medium |
Changed in linux (Ubuntu Bionic): | |
importance: | Medium → High |
status: | Confirmed → Triaged |
tags: | added: kernel-da-key |
tags: | added: patch |
Changed in linux (Ubuntu Bionic): | |
status: | In Progress → Fix Committed |
tags: |
added: kernel-fixup-verification-needed-bionic removed: verification-needed-bionic |
tags: | added: verification-needed-bionic |
tags: | added: cscc |
This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:
apport-collect 1759893
and then change the status of the bug to 'Confirmed'.
If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.
This change has been made by an automated script, maintained by the Ubuntu Kernel Team.