Messages in this thread | | | From | Rusty Russell <> | Subject | Re: No sysfs directory for openvswitch module when built-in | Date | Thu, 07 Feb 2013 10:08:09 +1030 |
| |
Ben Hutchings <bhutchings@solarflare.com> writes: > On Mon, 2013-02-04 at 16:29 +1030, Rusty Russell wrote: >> Cong Wang <xiyou.wangcong@gmail.com> writes: >> > Hello, Rusty, Jesse, >> > >> > I met an interesting problem when I compile openvswitch module as a >> > built-in (actually I compile ALL kernel modules as built-in), there is >> > no /sys/module/openvswitch/ directory created by the kernel in this >> > case. >> ... >> > What's worse, the user-space init script thinks openvswitch module is >> > not loaded by checking the exist of this directory, therefore refuses >> > to start. >> >> We only know built-in "modules" exist if we see a parameter or version >> which mention them. Looking for /sys/module/openvswitch/ is almost as >> flawed as looking in /proc/modules. >> >> I hacked up something which lists KBUILD_MODNAME for every element in my >> kernel which did EXPORT_KERNEL or module_init, and most of them can >> never be modules, though any could have parameters. Even if we changed >> the build system so we could tell things which "could have been a >> module", it's silly. > [...] > > Isn't this information already provided by modules.builtin?
(CC's trimmed)
Thanks Ben, I learned something! I hadn't spotted that tristate vars get set to Y instead of y. Subtle...
So we already have the infrastructure, and copy it into the module dir (though logically it's a kernel property and belongs in /proc). eg. lsmod doesn't list them, which is a bit weird, though modprobe "succeeds".
A quick grep through my /etc shows 5 scripts using lsmod and 1 using /sys/module to check for presence of modules. Should the kernel pad /proc/modules with entries for builtins?
Thoughts welcome... Rusty.
| |