From owner-freebsd-rc@FreeBSD.ORG Sat Dec 22 16:26:13 2012 Return-Path: Delivered-To: freebsd-rc@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 80548D9F for ; Sat, 22 Dec 2012 16:26:13 +0000 (UTC) (envelope-from utisoft@gmail.com) Received: from mail-bk0-f48.google.com (mail-bk0-f48.google.com [209.85.214.48]) by mx1.freebsd.org (Postfix) with ESMTP id 08F628FC12 for ; Sat, 22 Dec 2012 16:26:12 +0000 (UTC) Received: by mail-bk0-f48.google.com with SMTP id jc3so2809589bkc.7 for ; Sat, 22 Dec 2012 08:26:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type; bh=MLAAjAL05t9vMsx077e/J97hnyMxJ+6UkdyhsbNfbMM=; b=POvf2AEt1K0i7/SUL/2iSE9JclU/NNI9iUj0iD52lwi/qPow8FHIQX4d3U42Yp7r6U nfmv4kLaZWb64VivXVCRk6XRCDNdcFi+8ArPG12zsxNBct3qnY42bhwScR3yXHkWunP/ 2X0w1ch2SR+7FPne6rA/KdNXACR1iYl6yyxzANnPOzQwtsTd0rWiJvVYEG3FdzHQo3Bn 2EkjldfiheVhli6ZnhHS/Ce7fISexlBP4kfi+reSMBTUBGOdsY4Cr/9sawMQNm6giecF QCgwo1KCDS3imrvI0GlIaQn/9k6bYUjNiP6pbtZDG1Wq4eGwLqE/RAj1cOcUomJNJFgO e8RQ== Received: by 10.204.130.140 with SMTP id t12mr8395972bks.39.1356193571812; Sat, 22 Dec 2012 08:26:11 -0800 (PST) MIME-Version: 1.0 Sender: utisoft@gmail.com Received: by 10.204.167.71 with HTTP; Sat, 22 Dec 2012 08:25:41 -0800 (PST) In-Reply-To: <20110823201859.GA78110@crane.none> References: <20110821121509.GA27730@crane.none> <20110823201859.GA78110@crane.none> From: Chris Rees Date: Sat, 22 Dec 2012 16:25:41 +0000 X-Google-Sender-Auth: -lgoQmFLBXcE8FsBqnZ2jHx8Lsw Message-ID: Subject: Re: Concurrent execution of rc-scripts with rcorder(8) To: "freebsd-rc@freebsd.org" Content-Type: text/plain; charset=ISO-8859-1 Cc: buganini@gmail.com, kilian X-BeenThere: freebsd-rc@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Discussion related to /etc/rc.d design and implementation." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Dec 2012 16:26:13 -0000 Reawakening ancient thread. On 23 August 2011 21:18, kilian wrote: > On Sun, Aug 21, 2011 at 02:54:15PM +0100, Chris Rees wrote: >> On 21 Aug 2011 13:39, "kilian" wrote: >> > >> > 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 >> > >> >> I might suggest moving this to rc@. I'll try it later, looks interesting. >> >> Chris > > For anyone who is interested, updated the README[1] with some numbers, > detailing the influence on booting time. Hi Kilian, Buganini, I've been looking over both of your rc implementations, and they both seem to do the job well. The main reservation I have for rcexecr [1] is that it is not optional. Whether that is a problem is up for debate, but I think that it is important at least for the mid term to have a rc_parallel option; rc dependencies are funny things, and it would be absolutely unacceptable to have strange failures on production boxes. Every rc script would have to be reviewed in time (including ports), to ensure that they fitted in properly. Chris [1] https://github.com/buganini/rcexecr/ [2] https://github.com/kil/rcorder