Subject: Re: parallelization of rc.d
To: Luke Mewburn <lukem@NetBSD.org>
From: Bill Sommerfeld <sommerfeld@netbsd.org>
List: tech-userlevel
Date: 10/16/2004 14:37:10
On Tue, 2004-10-12 at 20:16, Luke Mewburn wrote: 
> On Wed, Oct 13, 2004 at 02:00:07AM +0400, Denis Lagno wrote:
>   | > What do you think about this?
>   | 
>   | I'd be much more happy if rc.d/rcorder machinery
>   | supported issuing independent jobs in parallel.
> 
> Do you have any cases where you think that this will make a
> significant difference to the boot time of a system?

For what it's worth, solaris 10 has taken this route (the old rcN.d
mechanism is still present for backwards compatibility, but isn't used
for most of the core services).

On multiprocessors, it definitely speeds boot, but it doesn't help
uniprocessors much at all (but it's highly dependent on workload, of
course).  A throttle on how many startups you run in parallel may be
necessary -- on uniprocessors you can actually slow down boot (due to
thrashing) if you run too many simultaneously..

However, it means that:

1) startup order is now effectively nondeterministic, randomized by
network and/or disk I/O completion order.

2) you will likely discover that you missed a few startup dependencies.

Hashing out the interaction of (1) and (2) is a pain.

- Bill