Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Jun 2012 10:09:01 -0700
From:      Doug Barton <dougb@FreeBSD.org>
To:        Peter Jeremy <peter@rulingia.com>
Cc:        "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>
Subject:   Re: Replacing rc(8) (Was: FreeBSD Boot Times)
Message-ID:  <4FE3552D.9090202@FreeBSD.org>
In-Reply-To: <20120621122802.GA71656@server.rulingia.com>
References:  <20120615124849.GI96212@ass.kameli.org> <CAKYr3zxSOFOUghqao=3U_8sBNHwqce8AGK6mSFd6is11qzjS8w@mail.gmail.com> <20120618081140.GK96212@ass.kameli.org> <4FDF6177.5050608@unsane.co.uk> <4FDF6586.9060501@gentoo.org> <4FDFB166.2040709@FreeBSD.org> <4FDFB761.60406@brandonfa.lk> <20120621122802.GA71656@server.rulingia.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 06/21/2012 05:28 AM, Peter Jeremy wrote:
> 32.0s - rc scripts ("mounting root" through VTY login prompt)

I think that there is some confusion about what I wrote originally, so
let me clarify. From the time that /etc/rc starts through the time that
the prompt appears almost all of the time is spent waiting for the
services to start. There is very little time spent IN the rc scripts
themselves (barring something that is poorly written of course). It's
also worth noting that because the time spent in this phase is heavily
dependent on what services you're starting, different people are going
to have vastly different experiences.

So the only way to improve the time from /etc/rc to "usable system"
(whatever that means for the user) is to see what we can parallelize.
The problem is that this is a really hard problem. :)  And as someone
pointed out, changing from a serial to a parallel process is going to be
disruptive because it will uncover the inadequately specified
dependencies that we have now which are hidden by the serial process ...
and that's just the base. The over 800 rc.d scripts in the ports are
(sadly) more wrong than right when it comes to specifying their rcorder
stuff. This is mostly a holdover from the old days when the local
scripts were all run in the same spot regardless of what was in
PROVIDE/REQUIRE. Ever since I brought the local scripts into the overall
rcorder (over 6 years ago now) we've been refining this, but dealing
with this issue has to be something that is carefully considered in the
planning for any proposed modifications.

Personally, if we were going to undergo the amount of work it would take
to handle parallelization of the existing rc.d framework; I'd rather put
that work into designing and building a better system that does other
things we need in addition to booting faster.

To that end I like the direction that the thread is going in terms of
discussing what a new system should have. I have some thoughts about
that, but I'd like to let others talk for a while first.

Doug



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4FE3552D.9090202>