Concurrent execution of rc-scripts with rcorder(8)

kilian kklimek at uos.de
Sun Aug 21 12:39:00 UTC 2011


Hello,

the idea to start services concurrently during boot isn't new and the
question why FreeBSD doesn't do it has popped up on the forum and
mailing list occasionally. So, why not give it a shot?

rcorder(8) is normally used during boot to bring the rc-scripts into a
particular order, so when they are executed linearly by /etc/rc, all
constraints will be satisfied. I modified rcorder(8) to enable it to
run rc-scripts concurrently, while keeping track of the constraints as
rc-scripts start and finish. You can find the code at
https://github.com/kil/rcorder. As it works now, it will fall back to the
current mode of execution if anything goes wrong. So, if worst comes to
worst, booting takes a bit longer.

If you feel brave, give it a try (Actually, not too much bravery is needed:
on all boots of my machine it worked perfectly every time.)

I haven't done any measurements yet on how large the speedup is, but booting
feels a bit faster with it. Also, there probably is room for improvement.
Any ideas and feedback are very welcome!

-kilian


More information about the freebsd-hackers mailing list