On Sat, Oct 11, 2014 at 03:58:46PM -0400, René Rhéaume wrote:
> Hello,
> I recently switched to mdev to try to improve the startup time of my
> computer. However, much of the execution is taken by modprobe. I then
> looked the mdev source file and saw the system() function call, which
> means spawning two processes: a shell and the wanted command. I have
> several questions:
> 
> 1. Can I save a process spawn by prefixing /bin/busybox to commands in
> mdev.conf? Example @modprobe $MODALIAS becomes @/bin/busybox modprobe
> $MODALIAS
No.
system() is always called; the result of that will be calling:
/bin/sh -c busybox ...

However, if you have ash as /bin/sh, and you have
PREFER_APPLETS/STANDALONE_SHELL enabled, you can save the process spawn
that sh would have.

> 2. Same question for helper scripts by replacing #!/bin/sh with #!
> /bin/busybox ash
If you have PREFER_APPLETS/STANDALONE_SHELL enabled, yes.

> 3. What is the applet call macro or function name?

BB_EXECVP() stands in for execvp().
There is no exact replacement for system(), as far as I know;
but it should be possible to write one.

> 4. Would the applet call effectively save two processes as I think?

If you mean two pids, no.
But it will save time.

Busybox will exec itself as a second process; howevver, this will save
the file search/load time, and possibly some more time due to relocation.

> 5. Is it possible to invoke modprobe (either the busybox or the kmod
> one) in parallel with something like xargs?

If you disabled "small modutils", you can use

 generate list of aliases | xargs modprobe -a

But mdev will never spawn anything with more than one modalias as an
argument, since spawning only happens when mdev is acting as a hotplugger.

At system startup, I'd use something like this to autoload modules:

 grep -h MODALIAS /sys/bus/*/devices/*/uevent 2>/dev/null | \
  cut -d= -f2 | xargs modprobe -abq

Hope this helps,
Isaac Dunham
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to