mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2025-11-15 00:55:29 +00:00
The summary of the changes for this pull requests is:
* Song Liu's new struct module_memory replacement
* Nick Alcock's MODULE_LICENSE() removal for non-modules
* My cleanups and enhancements to reduce the areas where we vmalloc
module memory for duplicates, and the respective debug code which
proves the remaining vmalloc pressure comes from userspace.
Most of the changes have been in linux-next for quite some time except
the minor fixes I made to check if a module was already loaded
prior to allocating the final module memory with vmalloc and the
respective debug code it introduces to help clarify the issue. Although
the functional change is small it is rather safe as it can only *help*
reduce vmalloc space for duplicates and is confirmed to fix a bootup
issue with over 400 CPUs with KASAN enabled. I don't expect stable
kernels to pick up that fix as the cleanups would have also had to have
been picked up. Folks on larger CPU systems with modules will want to
just upgrade if vmalloc space has been an issue on bootup.
Given the size of this request, here's some more elaborate details
on this pull request.
The functional change change in this pull request is the very first
patch from Song Liu which replaces the struct module_layout with a new
struct module memory. The old data structure tried to put together all
types of supported module memory types in one data structure, the new
one abstracts the differences in memory types in a module to allow each
one to provide their own set of details. This paves the way in the
future so we can deal with them in a cleaner way. If you look at changes
they also provide a nice cleanup of how we handle these different memory
areas in a module. This change has been in linux-next since before the
merge window opened for v6.3 so to provide more than a full kernel cycle
of testing. It's a good thing as quite a bit of fixes have been found
for it.
Jason Baron then made dynamic debug a first class citizen module user by
using module notifier callbacks to allocate / remove module specific
dynamic debug information.
Nick Alcock has done quite a bit of work cross-tree to remove module
license tags from things which cannot possibly be module at my request
so to:
a) help him with his longer term tooling goals which require a
deterministic evaluation if a piece a symbol code could ever be
part of a module or not. But quite recently it is has been made
clear that tooling is not the only one that would benefit.
Disambiguating symbols also helps efforts such as live patching,
kprobes and BPF, but for other reasons and R&D on this area
is active with no clear solution in sight.
b) help us inch closer to the now generally accepted long term goal
of automating all the MODULE_LICENSE() tags from SPDX license tags
In so far as a) is concerned, although module license tags are a no-op
for non-modules, tools which would want create a mapping of possible
modules can only rely on the module license tag after the commit
|
||
|---|---|---|
| .. | ||
| .gitignore | ||
| aegis128-aesni-asm.S | ||
| aegis128-aesni-glue.c | ||
| aes_ctrby8_avx-x86_64.S | ||
| aesni-intel_asm.S | ||
| aesni-intel_avx-x86_64.S | ||
| aesni-intel_glue.c | ||
| aria_aesni_avx2_glue.c | ||
| aria_aesni_avx_glue.c | ||
| aria_gfni_avx512_glue.c | ||
| aria-aesni-avx2-asm_64.S | ||
| aria-aesni-avx-asm_64.S | ||
| aria-avx.h | ||
| aria-gfni-avx512-asm_64.S | ||
| blake2s-core.S | ||
| blake2s-glue.c | ||
| blowfish_glue.c | ||
| blowfish-x86_64-asm_64.S | ||
| camellia_aesni_avx2_glue.c | ||
| camellia_aesni_avx_glue.c | ||
| camellia_glue.c | ||
| camellia-aesni-avx2-asm_64.S | ||
| camellia-aesni-avx-asm_64.S | ||
| camellia-x86_64-asm_64.S | ||
| camellia.h | ||
| cast5_avx_glue.c | ||
| cast5-avx-x86_64-asm_64.S | ||
| cast6_avx_glue.c | ||
| cast6-avx-x86_64-asm_64.S | ||
| chacha_glue.c | ||
| chacha-avx2-x86_64.S | ||
| chacha-avx512vl-x86_64.S | ||
| chacha-ssse3-x86_64.S | ||
| crc32-pclmul_asm.S | ||
| crc32-pclmul_glue.c | ||
| crc32c-intel_glue.c | ||
| crc32c-pcl-intel-asm_64.S | ||
| crct10dif-pcl-asm_64.S | ||
| crct10dif-pclmul_glue.c | ||
| curve25519-x86_64.c | ||
| des3_ede_glue.c | ||
| des3_ede-asm_64.S | ||
| ecb_cbc_helpers.h | ||
| ghash-clmulni-intel_asm.S | ||
| ghash-clmulni-intel_glue.c | ||
| glue_helper-asm-avx2.S | ||
| glue_helper-asm-avx.S | ||
| Kconfig | ||
| Makefile | ||
| nh-avx2-x86_64.S | ||
| nh-sse2-x86_64.S | ||
| nhpoly1305-avx2-glue.c | ||
| nhpoly1305-sse2-glue.c | ||
| poly1305_glue.c | ||
| poly1305-x86_64-cryptogams.pl | ||
| polyval-clmulni_asm.S | ||
| polyval-clmulni_glue.c | ||
| serpent_avx2_glue.c | ||
| serpent_avx_glue.c | ||
| serpent_sse2_glue.c | ||
| serpent-avx2-asm_64.S | ||
| serpent-avx-x86_64-asm_64.S | ||
| serpent-avx.h | ||
| serpent-sse2-i586-asm_32.S | ||
| serpent-sse2-x86_64-asm_64.S | ||
| serpent-sse2.h | ||
| sha1_avx2_x86_64_asm.S | ||
| sha1_ni_asm.S | ||
| sha1_ssse3_asm.S | ||
| sha1_ssse3_glue.c | ||
| sha256_ni_asm.S | ||
| sha256_ssse3_glue.c | ||
| sha256-avx2-asm.S | ||
| sha256-avx-asm.S | ||
| sha256-ssse3-asm.S | ||
| sha512_ssse3_glue.c | ||
| sha512-avx2-asm.S | ||
| sha512-avx-asm.S | ||
| sha512-ssse3-asm.S | ||
| sm3_avx_glue.c | ||
| sm3-avx-asm_64.S | ||
| sm4_aesni_avx2_glue.c | ||
| sm4_aesni_avx_glue.c | ||
| sm4-aesni-avx2-asm_64.S | ||
| sm4-aesni-avx-asm_64.S | ||
| sm4-avx.h | ||
| twofish_avx_glue.c | ||
| twofish_glue_3way.c | ||
| twofish_glue.c | ||
| twofish-avx-x86_64-asm_64.S | ||
| twofish-i586-asm_32.S | ||
| twofish-x86_64-asm_64-3way.S | ||
| twofish-x86_64-asm_64.S | ||
| twofish.h | ||