Re: [PATCH 0/3] Implement /proc/built-in file similar to /proc/modules
From: Kirill Tkhai <hidden>
Date: 2014-09-14 17:57:10
Also in:
lkml
On 14.09.2014 21:27, Oleg Nesterov wrote:
On 09/14, Greg KH wrote:quoted
On Sun, Sep 14, 2014 at 02:18:13PM +0400, Kirill Tkhai wrote:quoted
This series implements a possibility to show the list of built-in drivers to userspace. The names of drivers will be the same as when they are modules.Have you looked at /sys/modules/ ? Doesn't that show what you want here?Well, /sys/module/ doesn't list the modules (drivers) compiled in. Say, /sys/module/kernel. And it can't help a user to figure out that, say, the loop driver is already "loaded" because CONFIG_BLK_DEV_LOOP=y.quoted
Module names aren't "standardized", we change them at times when needed, just like CONFIG_ names.OK, but still the name will be the same, in /proc/modules or /proc/builtin.quoted
What is your end goal here? As you say, config.gz is the real kernel configuration, just having a list of modules built in isn't going to help much in getting a working kernel config without it.Perhaps you are right... but otoh perhaps this can can be useful anyway. Again, a user can know about "insmod loop", but he can know nothing about CONFIG_ names. That said, I do not really understand 2/3. Not only I do not understand this kbuild magic, I am not sure I understand what /proc/built-in will actually show.
It's a list of drivers, one driver per line: loop ipv4 ipv5 ipv6 ipv7 ipv8 etc ;)
To me it would be better to change the "ifndef MODULE" version of module_init() to add KBUILD_MODNAME into __builtin_drivers_list[]. Yes, module_init() is overused. Say, why does kernel/kprobes.c use module_init() ? This looks confusing, this code can't be compiled as a module. And it seems that it has a lot more users which should have used __initcall() instead
Yeh, the realization may be different. I do not insist on additional section. I'm happy listening to advices. .
In short, I dunno ;)
Thanks, Kirill