Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Jun 2011 20:10:55 -0600
From:      Warner Losh <imp@bsdimp.com>
To:        "K. Macy" <kmacy@freebsd.org>
Cc:        mdf@freebsd.org, freebsd-arch@freebsd.org
Subject:   Re: [RFC] shipping kernels with default modules?
Message-ID:  <48A8C532-0972-49F8-BBA3-B0663E0D5067@bsdimp.com>
In-Reply-To: <BANLkTi=wsPx8fyQz9wWwRLpMpv9esmawOQ@mail.gmail.com>
References:  <BANLkTin2AwKRT7N6HWqBctJcT72_mR=Otg@mail.gmail.com> <20110611171834.GA38142@zim.MIT.EDU> <BANLkTik=z-fb1sDwh0dr4hRWmdhLMWiKdw@mail.gmail.com> <20110611204326.GA51320@zim.MIT.EDU> <BANLkTino4eMNPQedE1TcxUYqgbuPNfhHKw@mail.gmail.com> <9349A935-F13D-4265-A59C-C1E9B35F2B73@bsdimp.com> <BANLkTi=wsPx8fyQz9wWwRLpMpv9esmawOQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On Jun 11, 2011, at 5:51 PM, K. Macy wrote:

>>> Although I imagine that many drivers silently benefit from being
>>> loaded serially, to the best of my knowledge there is nothing
>>> architecturally requiring this apart from the fact that the =
scheduler
>>> isn't started until everything else tied to initialization happens.
>>> The absence of any sort of preemption was a bit of a thorn in my =
side
>>> back when I was working on "xenbus", as the linux implementation
>>> relies on the use of multiple thread contexts. I don't know how much
>>> effort to date has been put in to making boot fast.
>>=20
>> Right now newbus uses Giant for all its locking.  That's the biggest =
problem preventing parallel probe/attach.  Also, each and every bus =
calls probe, then calls attach for each device in sequence.  Fixing that =
would require changing all the bus drivers.
>=20
>=20
> Fair enough. That would only be worthwhile in the presence of a
> coordinated push to shorten boot / reset times.

Agreed.  We could be a *LOT* faster if we stalled on first use rather =
than wait for all the stragglers.  No need to wait for network devices, =
or that USB drive that's connected to the system until ifconfig or mount =
time.  I think that has to be in the mix too.  But that dove-tails into =
something like launchd where applications wait for the resources they =
use to finish initializing.

Warner=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48A8C532-0972-49F8-BBA3-B0663E0D5067>