KernelNewbies:

Linux kernel module support

This is an informal wiki to keep tabs on Linux kernel module support ongoing R&D and outstanding things.

Previous pull requests

This contains the list of changes sent to Linus. Although each pull request has its own documented set of changes we list a few highlights for each half of each year below. You can inspect these yourself using git log --merges --grep="Pull module".

2025

2025-01 - 2025-06

Sebastian Andrzej Siewior cleaned up the module code to use RCU instead of RCU-sched (v6.15-rc1).

Several important module changes were merged through the kbuild tree:

Matthew Maurer added support for extended modversions, allowing imported symbol names to be longer than 64 - sizeof(unsigned long) bytes. Sami Tolvanen implemented a new tool called gendwarfksyms to calculate CRCs of exported symbols from type information present in DWARF data, as opposed to genksyms which parses pre-processed source files. Both changes were implemented to enable modversions for Rust (v6.14-rc1).

Peter Zijlstra added support for module-specific symbol namespaces, allowing symbols to be exported only for use in selected modules (v6.16-rc1).

2024

2024-07 - 2024-12

Luis Chamberlain added Petr Pavlu, Sami Tolvanen and Daniel Gomez as reviewers/co-maintainers. The maintainership of the modules tree began rotating among them every six months. Petr took over first, starting with the v6.13-rc5 pull request.

2024-01 - 2024-06

2023

2023-07 - 2023-12

Christoph Hellwig's symbol_get() fix which points to that we should remove those hacks and remove that call. Function symbol_get() is just a hack to address things which should be fixed through Kconfig at build time as was done in the later patches, and so ultimately it should just be removed.

2023-01 - 2023-06

Song Liu added a new struct module_memory replacement. Nick Alcock's removed MODULE_LICENSE() from non-modules. We proved vmalloc memory allocation abuse comes from systemd udev, we're wasting ~463 MiB per CPU lost prior to the first fix. After working with Linus on this he came up with a brilliant simple solution making duplicate requests idempotent.

2022

2022-07 - 2022-12

Implication of misalignment of some sections were discussed, for .altinstructions and __bug_table sections, there should be no real ill effects unless you have a buggy exception handler and we ran into one on parisc. Stephen Boyd added zstd in-kernel decompression support but the only users of this would be folks using the load-pin LSM because otherwise we do module decompression in userspace.

2022-01 - 2022-06

Luis Chamberlain started maintaining as of the v5.17-rc1 pull request. The first order of business was to split up kernel/module.c into parts. The modules-v5.17-rc1 merge request was the last one with the modules code all in one place. Aaron Tomlin did all the work, he also added CONFIG_MODULE_UNLOAD_TAINT_TRACKING. Christophe Leroy added CONFIG_ARCH_WANTS_MODULES_DATA_IN_VMALLOC which lets architectures to request having modules data in vmalloc area instead of module area.

2021

2021-07 - 2021-12

Jessica Yu is the maintainer.

2021-01 - 2021-06

2020

2020-07 - 2020-12

2020-01 - 2023-06

Ongoing development

Things requiring more community eyeballs or maintainer review:

TODO

Things which the maintainer or other developers can work on:

KernelNewbies: KernelProjects/modules (last edited 2025-06-16 13:46:54 by PetrPavlu)