Re: [PATCH v3] moduleparam: Save information about built-in modules in separate file

From: Jessica Yu
Date: Mon Apr 29 2019 - 10:22:05 EST


+++ Alexey Gladkov [29/04/19 11:08 +0200]:
Problem:

When a kernel module is compiled as a separate module, some important
information about the kernel module is available via .modinfo section of
the module. In contrast, when the kernel module is compiled into the
kernel, that information is not available.

Information about built-in modules is necessary in the following cases:

1. When it is necessary to find out what additional parameters can be
passed to the kernel at boot time.

2. When you need to know which module names and their aliases are in
the kernel. This is very useful for creating an initrd image.

Proposal:

The proposed patch does not remove .modinfo section with module
information from the vmlinux at the build time and saves it into a
separate file after kernel linking. So, the kernel does not increase in
size and no additional information remains in it. Information is stored
in the same format as in the separate modules (null-terminated string
array). Because the .modinfo section is already exported with a separate
modules, we are not creating a new API.

It can be easily read in the userspace:

$ tr '\0' '\n' < kernel.builtin

s/kernel.builtin/modules.builtin.modinfo/

Otherwise, for module.h and moduleparam.h:

Acked-by: Jessica Yu <jeyu@xxxxxxxxxx>

And it would be great if Lucas can confirm if the file format and name
would be OK for kmod.

Thanks!

Jessica