failed to load large compressed kernel modules in mantic with 6.5
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
kmod (Ubuntu) |
Fix Released
|
Undecided
|
Dimitri John Ledkov | ||
Mantic |
Fix Released
|
Undecided
|
Dimitri John Ledkov |
Bug Description
[Impact]
Kernel 6.5 in Mantic enabled zstd module compression and at the same time libkmod is now trying to decompress the modules in-kernel directly. However the size that can be allocated by the kernel to do such decompression is limited and some large modules can fail to load (such as zfs for example).
[Test case]
Install zfs-dkms, then run:
$ modprobe zfs
[Fix]
Fallback to the old user-space module loading way when ENOMEM is returned by finit_module().
[Regression potential]
We may introduce a small performance regression when loading multiple modules, due to the in-kernel and user-space attempts to load kernel modules, however this performance regression is negligible (one additional syscall when loading large modules) and it allows to correctly support large compressed kernel modules.
ProblemType: Bug
DistroRelease: Ubuntu 23.10
Package: kmod 30+20230519-
ProcVersionSign
Uname: Linux 6.5.0-6-generic x86_64
ApportVersion: 2.27.0-0ubuntu2
Architecture: amd64
CasperMD5CheckR
CloudArchitecture: x86_64
CloudBuildName: server
CloudID: nocloud
CloudName: unknown
CloudPlatform: nocloud
CloudSerial: 20230822
CloudSubPlatform: config-disk (/dev/vdb)
Date: Tue Aug 22 15:31:34 2023
ProcEnviron:
LANG=C.UTF-8
PATH=(custom, no user)
SHELL=/bin/bash
TERM=xterm-
XDG_RUNTIME_
SourcePackage: kmod
UpgradeStatus: No upgrade log present (probably fresh install)
Related branches
- Nick Rosbrook (community): Approve
- Ubuntu Sponsors: Pending requested
-
Diff: 890 lines (+649/-1)12 files modifieddebian/changelog (+494/-0)
debian/control (+2/-1)
debian/depmod.d/ubuntu.conf (+1/-0)
debian/modprobe.d/blacklist-ath_pci.conf (+7/-0)
debian/modprobe.d/blacklist-firewire.conf (+10/-0)
debian/modprobe.d/blacklist-framebuffer.conf (+31/-0)
debian/modprobe.d/blacklist-rare-network.conf (+22/-0)
debian/modprobe.d/blacklist.conf (+52/-0)
debian/modprobe.d/iwlwifi.conf (+7/-0)
debian/patches/0006-libkmod-support-large-compressed-modules.patch (+16/-0)
debian/patches/series (+1/-0)
debian/rules (+6/-0)
Changed in kmod (Ubuntu Mantic): | |
assignee: | nobody → Dan Bungert (dbungert) |
status: | New → In Progress |
debdiff in attach fixes the problem and it allows to load large compressed kernel modules with the latest 6.5 kernel in mantic.