linux-kbuild.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/7] Add generated modalias to modules.builtin.modinfo
@ 2025-06-21 13:57 Alexey Gladkov
  2025-06-21 13:57 ` [PATCH v4 1/7] module: remove meaningless 'name' parameter from __MODULE_INFO() Alexey Gladkov
                   ` (7 more replies)
  0 siblings, 8 replies; 16+ messages in thread
From: Alexey Gladkov @ 2025-06-21 13:57 UTC (permalink / raw)
  To: Masahiro Yamada, Petr Pavlu, Luis Chamberlain, Sami Tolvanen,
	Daniel Gomez, Nathan Chancellor, Nicolas Schier
  Cc: linux-kernel, linux-modules, linux-kbuild, linux-scsi,
	Alexey Gladkov

The modules.builtin.modinfo file is used by userspace (kmod to be specific) to
get information about builtin modules. Among other information about the module,
information about module aliases is stored. This is very important to determine
that a particular modalias will be handled by a module that is inside the
kernel.

There are several mechanisms for creating modalias for modules:

The first is to explicitly specify the MODULE_ALIAS of the macro. In this case,
the aliases go into the '.modinfo' section of the module if it is compiled
separately or into vmlinux.o if it is builtin into the kernel.

The second is the use of MODULE_DEVICE_TABLE followed by the use of the
modpost utility. In this case, vmlinux.o no longer has this information and
does not get it into modules.builtin.modinfo.

For example:

$ modinfo pci:v00008086d0000A36Dsv00001043sd00008694bc0Csc03i30
modinfo: ERROR: Module pci:v00008086d0000A36Dsv00001043sd00008694bc0Csc03i30 not found.

$ modinfo xhci_pci
name:           xhci_pci
filename:       (builtin)
license:        GPL
file:           drivers/usb/host/xhci-pci
description:    xHCI PCI Host Controller Driver

The builtin module is missing alias "pci:v*d*sv*sd*bc0Csc03i30*" which will be
generated by modpost if the module is built separately.

To fix this it is necessary to add the generated by modpost modalias to
modules.builtin.modinfo.

Fortunately modpost already generates .vmlinux.export.c for exported symbols. It
is possible to use this file to create a '.modinfo' section for builtin modules.
The modules.builtin.modinfo file becomes a composite file. One part is extracted
from vmlinux.o, the other part from .vmlinux.export.o.

Notes:
- v4:
  * Rework the patchset based on top of Masahiro Yamada's patches.
  * Add removal of unnecessary __mod_device_table__* symbols to avoid symbol
    table growth in vmlinux.
  * rust code takes into account changes in __mod_device_table__*.
  * v3: https://lore.kernel.org/all/cover.1748335606.git.legion@kernel.org/

- v3:
  * Add `Reviewed-by` tag to patches from Petr Pavlu.
  * Rebase to v6.15.
  * v2: https://lore.kernel.org/all/20250509164237.2886508-1-legion@kernel.org/

- v2:
  * Drop patch for mfd because it was already applied and is in linux-next.
  * The generation of aliases for builtin modules has been redone as
    suggested by Masahiro Yamada.
  * Rebase to v6.15-rc5-136-g9c69f8884904
  * v1: https://lore.kernel.org/all/cover.1745591072.git.legion@kernel.org/


Alexey Gladkov (3):
  scsi: Always define blogic_pci_tbl structure
  modpost: Add modname to mod_device_table alias
  modpost: Create modalias for builtin modules

Masahiro Yamada (4):
  module: remove meaningless 'name' parameter from __MODULE_INFO()
  kbuild: always create intermediate vmlinux.unstripped
  kbuild: keep .modinfo section in vmlinux.unstripped
  kbuild: extract modules.builtin.modinfo from vmlinux.unstripped

 drivers/scsi/BusLogic.c           |  2 -
 include/asm-generic/vmlinux.lds.h |  2 +-
 include/crypto/algapi.h           |  4 +-
 include/linux/module.h            | 21 ++++-----
 include/linux/moduleparam.h       |  9 ++--
 include/net/tcp.h                 |  4 +-
 rust/kernel/device_id.rs          |  8 ++--
 scripts/Makefile.vmlinux          | 74 +++++++++++++++++++++----------
 scripts/Makefile.vmlinux_o        | 26 +----------
 scripts/mksysmap                  |  6 +++
 scripts/mod/file2alias.c          | 34 ++++++++++++--
 scripts/mod/modpost.c             | 17 ++++++-
 scripts/mod/modpost.h             |  2 +
 13 files changed, 131 insertions(+), 78 deletions(-)

-- 
2.49.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2025-07-22 10:05 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-21 13:57 [PATCH v4 0/7] Add generated modalias to modules.builtin.modinfo Alexey Gladkov
2025-06-21 13:57 ` [PATCH v4 1/7] module: remove meaningless 'name' parameter from __MODULE_INFO() Alexey Gladkov
2025-06-21 13:57 ` [PATCH v4 2/7] kbuild: always create intermediate vmlinux.unstripped Alexey Gladkov
2025-06-21 13:57 ` [PATCH v4 3/7] kbuild: keep .modinfo section in vmlinux.unstripped Alexey Gladkov
2025-06-21 13:57 ` [PATCH v4 4/7] kbuild: extract modules.builtin.modinfo from vmlinux.unstripped Alexey Gladkov
2025-06-21 13:57 ` [PATCH v4 5/7] scsi: Always define blogic_pci_tbl structure Alexey Gladkov
2025-06-21 13:57 ` [PATCH v4 6/7] modpost: Add modname to mod_device_table alias Alexey Gladkov
2025-06-21 14:48   ` Miguel Ojeda
2025-06-21 15:20   ` Miguel Ojeda
2025-06-21 16:10     ` Alexey Gladkov
2025-06-23  6:15     ` FUJITA Tomonori
2025-06-21 13:57 ` [PATCH v4 7/7] modpost: Create modalias for builtin modules Alexey Gladkov
2025-07-14 13:41 ` [PATCH v4 0/7] Add generated modalias to modules.builtin.modinfo Alexey Gladkov
2025-07-15 16:23   ` Masahiro Yamada
2025-07-16 10:40     ` Alexey Gladkov
2025-07-22 10:05     ` Alexey Gladkov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).