2007-11-29 09:42:15

by Robert P. J. Day

[permalink] [raw]
Subject: does /proc/sys/kernel/modprobe actually do anything?


(i asked about this earlier on the newbies list, but after poking
around a bit more, i thought i'd ask here.)

according to Documentation/debugging-modules.txt:

The correct way of debugging module problems is something like this:

echo '#! /bin/sh' > /tmp/modprobe
echo 'echo "$@" >> /tmp/modprobe.log' >> /tmp/modprobe
echo 'exec /sbin/modprobe "$@"' >> /tmp/modprobe
chmod a+x /tmp/modprobe
echo /tmp/modprobe > /proc/sys/kernel/modprobe

i've tried that and i don't see that it does anything whatsoever. i
ran modprobe under "strace" and it doesn't appear to make any effort
to check /proc/sys/kernel/modprobe. i even downloaded the source to
the module-init-tools package and scanned the source and ... nothing.

so what's up with that?

rday

========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://crashcourse.ca
========================================================================


2007-11-29 10:07:29

by Alexey Dobriyan

[permalink] [raw]
Subject: Re: does /proc/sys/kernel/modprobe actually do anything?

On 11/29/07, Robert P. J. Day <[email protected]> wrote:
> echo '#! /bin/sh' > /tmp/modprobe
> echo 'echo "$@" >> /tmp/modprobe.log' >> /tmp/modprobe
> echo 'exec /sbin/modprobe "$@"' >> /tmp/modprobe
> chmod a+x /tmp/modprobe
> echo /tmp/modprobe > /proc/sys/kernel/modprobe
>
> i've tried that and i don't see that it does anything whatsoever. i
> ran modprobe under "strace" and it doesn't appear to make any effort
> to check /proc/sys/kernel/modprobe.

Kernel, not modprobe, checks /proc/sys/kernel/modprobe .

2007-11-29 10:20:32

by Robert P. J. Day

[permalink] [raw]
Subject: Re: does /proc/sys/kernel/modprobe actually do anything?

On Thu, 29 Nov 2007, Alexey Dobriyan wrote:

> On 11/29/07, Robert P. J. Day <[email protected]> wrote:
> > echo '#! /bin/sh' > /tmp/modprobe
> > echo 'echo "$@" >> /tmp/modprobe.log' >> /tmp/modprobe
> > echo 'exec /sbin/modprobe "$@"' >> /tmp/modprobe
> > chmod a+x /tmp/modprobe
> > echo /tmp/modprobe > /proc/sys/kernel/modprobe
> >
> > i've tried that and i don't see that it does anything whatsoever. i
> > ran modprobe under "strace" and it doesn't appear to make any effort
> > to check /proc/sys/kernel/modprobe.
>
> Kernel, not modprobe, checks /proc/sys/kernel/modprobe .

can you point me to where it does that? thanks.

rday

========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://crashcourse.ca
========================================================================

2007-11-29 12:58:40

by Robert P. J. Day

[permalink] [raw]
Subject: Re: does /proc/sys/kernel/modprobe actually do anything?

On Thu, 29 Nov 2007, Alexey Dobriyan wrote:

> On 11/29/07, Robert P. J. Day <[email protected]> wrote:
> > echo '#! /bin/sh' > /tmp/modprobe
> > echo 'echo "$@" >> /tmp/modprobe.log' >> /tmp/modprobe
> > echo 'exec /sbin/modprobe "$@"' >> /tmp/modprobe
> > chmod a+x /tmp/modprobe
> > echo /tmp/modprobe > /proc/sys/kernel/modprobe
> >
> > i've tried that and i don't see that it does anything whatsoever. i
> > ran modprobe under "strace" and it doesn't appear to make any effort
> > to check /proc/sys/kernel/modprobe.
>
> Kernel, not modprobe, checks /proc/sys/kernel/modprobe .

actually, ignore that earlier query of mine, i've found the relevant
code under kernel/ in sysctl.c and sysctl_check.c and kmod.c. but
it's still not clear why what is described in
Documentation/debugging-modules.txt (and shown above) doesn't work, so
i'm still open to suggestions. thanks.

rday
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://crashcourse.ca
========================================================================

2007-11-29 17:14:23

by Kay Sievers

[permalink] [raw]
Subject: Re: does /proc/sys/kernel/modprobe actually do anything?

On Nov 29, 2007 1:58 PM, Robert P. J. Day <[email protected]> wrote:
> On Thu, 29 Nov 2007, Alexey Dobriyan wrote:
>
> > On 11/29/07, Robert P. J. Day <[email protected]> wrote:
> > > echo '#! /bin/sh' > /tmp/modprobe
> > > echo 'echo "$@" >> /tmp/modprobe.log' >> /tmp/modprobe
> > > echo 'exec /sbin/modprobe "$@"' >> /tmp/modprobe
> > > chmod a+x /tmp/modprobe
> > > echo /tmp/modprobe > /proc/sys/kernel/modprobe
> > >
> > > i've tried that and i don't see that it does anything whatsoever. i
> > > ran modprobe under "strace" and it doesn't appear to make any effort
> > > to check /proc/sys/kernel/modprobe.
> >
> > Kernel, not modprobe, checks /proc/sys/kernel/modprobe .
>
> actually, ignore that earlier query of mine, i've found the relevant
> code under kernel/ in sysctl.c and sysctl_check.c and kmod.c. but
> it's still not clear why what is described in
> Documentation/debugging-modules.txt (and shown above) doesn't work, so
> i'm still open to suggestions. thanks.

Kernel code can request a module to be loaded by calling request_module().
The /proc/sys/kernel/modprobe value is the path to the binary which the kernel
executes when this function is called. It is used by some modules, or if you
open an existing device node which has no actual driver loaded.

Most modules are loaded by device id's (modalias) of a device.
The module is loaded by pure userspace tools and not by the kernel and
therefore /proc/sys/kernel/modprobe is not involved at all in most module
loading.

The text in Documentation/debugging-modules.txt is purely about kernel
module loading requests, and not helpful for the common module loading
case.

Kay

2007-11-29 17:21:42

by Robert P. J. Day

[permalink] [raw]
Subject: Re: does /proc/sys/kernel/modprobe actually do anything?

On Thu, 29 Nov 2007, Kay Sievers wrote:

> On Nov 29, 2007 1:58 PM, Robert P. J. Day <[email protected]> wrote:
> > On Thu, 29 Nov 2007, Alexey Dobriyan wrote:
> >
> > > On 11/29/07, Robert P. J. Day <[email protected]> wrote:
> > > > echo '#! /bin/sh' > /tmp/modprobe
> > > > echo 'echo "$@" >> /tmp/modprobe.log' >> /tmp/modprobe
> > > > echo 'exec /sbin/modprobe "$@"' >> /tmp/modprobe
> > > > chmod a+x /tmp/modprobe
> > > > echo /tmp/modprobe > /proc/sys/kernel/modprobe
> > > >
> > > > i've tried that and i don't see that it does anything whatsoever. i
> > > > ran modprobe under "strace" and it doesn't appear to make any effort
> > > > to check /proc/sys/kernel/modprobe.
> > >
> > > Kernel, not modprobe, checks /proc/sys/kernel/modprobe .
> >
> > actually, ignore that earlier query of mine, i've found the relevant
> > code under kernel/ in sysctl.c and sysctl_check.c and kmod.c. but
> > it's still not clear why what is described in
> > Documentation/debugging-modules.txt (and shown above) doesn't work, so
> > i'm still open to suggestions. thanks.
>
> Kernel code can request a module to be loaded by calling
> request_module(). The /proc/sys/kernel/modprobe value is the path to
> the binary which the kernel executes when this function is called.
> It is used by some modules, or if you open an existing device node
> which has no actual driver loaded.
>
> Most modules are loaded by device id's (modalias) of a device. The
> module is loaded by pure userspace tools and not by the kernel and
> therefore /proc/sys/kernel/modprobe is not involved at all in most
> module loading.
>
> The text in Documentation/debugging-modules.txt is purely about
> kernel module loading requests, and not helpful for the common
> module loading case.

i'd eventually come to a conclusion sort of like that. so that
suggests that what's in Documentation/debugging-modules.txt should
really be updated to reflect that; otherwise, other folks might trip
across it like i did and wonder why it's just not working for them.

rday

========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://crashcourse.ca
========================================================================