From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 21 17:09:47 2012 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx2.freebsd.org (mx2.freebsd.org [IPv6:2001:4f8:fff6::35]) by hub.freebsd.org (Postfix) with ESMTP id A25FB106566C for ; Thu, 21 Jun 2012 17:09:47 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from [127.0.0.1] (hub.freebsd.org [IPv6:2001:4f8:fff6::36]) by mx2.freebsd.org (Postfix) with ESMTP id 0E448175CA2; Thu, 21 Jun 2012 17:09:01 +0000 (UTC) Message-ID: <4FE3552D.9090202@FreeBSD.org> Date: Thu, 21 Jun 2012 10:09:01 -0700 From: Doug Barton Organization: http://www.FreeBSD.org/ User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120430 Thunderbird/12.0.1 MIME-Version: 1.0 To: Peter Jeremy References: <20120615124849.GI96212@ass.kameli.org> <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> In-Reply-To: <20120621122802.GA71656@server.rulingia.com> X-Enigmail-Version: 1.4.2 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: "freebsd-hackers@freebsd.org" Subject: Re: Replacing rc(8) (Was: FreeBSD Boot Times) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jun 2012 17:09:47 -0000 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