Discussion:
Linux-libre-4.15 and the NVMe module
(too old to reply)
Mark H Weaver
2018-01-29 14:18:17 UTC
Permalink
Hello Guix,

I've pushed a new 'kernel-updates' branch that includes the update to
linux-libre-4.15, and asked Hydra to build it. However, I haven't yet
pushed this to 'master' because of a complication.

At present, all of our kernel configurations have CONFIG_BLK_DEV_NVME=m
which results in an "nvme.ko" module, and this module is included in the
list of modules to be copied to our 'base-initrd' and loaded during
early boot.

Unfortunately, it seems that in linux-libre-4.15, we must now have
CONFIG_BLK_DEV_NVME=y (built-in) if we wish to keep CONFIG_NVM=y
(Open-Channel SSD target support), which we've had enabled in our kernel
configurations since 4.4. CONFIG_NVM cannot be made modular, and in
4.15 it now depends on CONFIG_BLK_DEV_NVME=y.

Since I don't see a nice way in our current 'base-initrd' implementation
to conditionally include "nvme.ko" depending on the kernel
configuration, I simply removed "nvme.ko" from the list of modules, and
changed all of our kernel configurations to have CONFIG_BLK_DEV_NVME=y.

While I was at it, I updated our older kernel configurations to the
current point releases, using "make oldconfig". My main motivation for
doing this was to explicitly show in our config files that we've enabled
the mitigations for meltdown and spectre.

Any comments on this approach? Other suggestions?

Mark
n***@n0.is
2018-01-29 17:09:01 UTC
Permalink
Hi,
Post by Mark H Weaver
Hello Guix,
I've pushed a new 'kernel-updates' branch that includes the update to
linux-libre-4.15, and asked Hydra to build it. However, I haven't yet
pushed this to 'master' because of a complication.
At present, all of our kernel configurations have CONFIG_BLK_DEV_NVME=m
which results in an "nvme.ko" module, and this module is included in the
list of modules to be copied to our 'base-initrd' and loaded during
early boot.
Oh, good that you've looked deeper into this. I planned to when
the rc's started showing this problem but didn't really follow-up
to it.
Post by Mark H Weaver
Unfortunately, it seems that in linux-libre-4.15, we must now have
CONFIG_BLK_DEV_NVME=y (built-in) if we wish to keep CONFIG_NVM=y
(Open-Channel SSD target support), which we've had enabled in our kernel
configurations since 4.4. CONFIG_NVM cannot be made modular, and in
4.15 it now depends on CONFIG_BLK_DEV_NVME=y.
Since I don't see a nice way in our current 'base-initrd' implementation
to conditionally include "nvme.ko" depending on the kernel
configuration, I simply removed "nvme.ko" from the list of modules, and
changed all of our kernel configurations to have CONFIG_BLK_DEV_NVME=y.
While I was at it, I updated our older kernel configurations to the
current point releases, using "make oldconfig". My main motivation for
doing this was to explicitly show in our config files that we've enabled
the mitigations for meltdown and spectre.
Any comments on this approach? Other suggestions?
Mark
I think in general it's okay. I'm still rebuilding my server with
the patches taken from your branch. I suspect not to run into any
problems with it, and skipping the commits they looked good to me.

Of course I can only test for x86, not i686 or aarch64

Thanks!
--
ng0 :: https://ea.n0.is
A88C8ADD129828D7EAC02E52E22F9BBFEE348588 :: https://ea.n0.is/keys/
Mark H Weaver
2018-01-30 10:12:25 UTC
Permalink
Post by Mark H Weaver
I've pushed a new 'kernel-updates' branch that includes the update to
linux-libre-4.15, and asked Hydra to build it.
I went ahead and pushed these commits to master, following a successful
evaluation on Hydra and some additional testing on my systems.

Mark
Ludovic Courtès
2018-01-31 13:37:51 UTC
Permalink
Post by Mark H Weaver
Post by Mark H Weaver
I've pushed a new 'kernel-updates' branch that includes the update to
linux-libre-4.15, and asked Hydra to build it.
I went ahead and pushed these commits to master, following a successful
evaluation on Hydra and some additional testing on my systems.
Excellent, thank you!

Ludo’.

Danny Milosavljevic
2018-01-30 11:07:29 UTC
Permalink
Hi Mark,

On Mon, 29 Jan 2018 09:18:17 -0500
Post by Mark H Weaver
Unfortunately, it seems that in linux-libre-4.15, we must now have
CONFIG_BLK_DEV_NVME=y (built-in) if we wish to keep CONFIG_NVM=y
(Open-Channel SSD target support), which we've had enabled in our kernel
configurations since 4.4. CONFIG_NVM cannot be made modular, and in
4.15 it now depends on CONFIG_BLK_DEV_NVME=y.
I wonder whether that's a regression or on purpose...
Post by Mark H Weaver
Since I don't see a nice way in our current 'base-initrd' implementation
to conditionally include "nvme.ko" depending on the kernel
configuration, I simply removed "nvme.ko" from the list of modules, and
changed all of our kernel configurations to have CONFIG_BLK_DEV_NVME=y.
I think that's fine for the time being.

That said, it would be nice if we extended our base-initrd implementation to
take a list of modules to try to copy, and to skip each which doesn't exist.

It would make the initrds more reusable and I don't see a downside if we
supported both this new list of modules and the existing list of modules.
Post by Mark H Weaver
While I was at it, I updated our older kernel configurations to the
current point releases, using "make oldconfig". My main motivation for
doing this was to explicitly show in our config files that we've enabled
the mitigations for meltdown and spectre.
Good idea.
Loading...