[RFC] shipping kernels with default modules?
Warner Losh
imp at bsdimp.com
Sat Jun 11 23:09:31 UTC 2011
On Jun 11, 2011, at 2:43 PM, David Schultz wrote:
> On Sat, Jun 11, 2011, mdf at freebsd.org wrote:
>> On Sat, Jun 11, 2011 at 10:18 AM, David Schultz <das at freebsd.org> wrote:
>>> On Sat, Jun 11, 2011, Adrian Chadd wrote:
>>>> Hi guys,
>>>>
>>>> Has there been any further thought as of late about shipping kernels
>>>> with modules only by default, rather than monolithic kernels?
>>>>
>>>> I tried this experiment a couple years ago and besides a little
>>>> trickery with ACPI module loading, it worked out fine.
>>>>
>>>> Is there any reason we aren't doing this at the moment? Eg by having a
>>>> default loader modules list populated from the kernel config file?
>>>
>>> I've been doing this for years, and it has come in quite handy.
>>> For instance, when my if_msk gets wedged, the only way to fix it
>>> short of rebooting seems to be reloading the driver.
>>>
>>> One issue, however, is that the boot loader is horrendously slow
>>> at loading modules. (Either that or my BIOS has a braindead int 13h
>>> handler.) Most of these modules aren't actually needed until much
>>> later in the boot process, so a mechanism to load non-essential
>>> modules after the file systems are mounted might provide a good
>>> solution.
>>
>> Indeed, at $WORK we're trying to get shutdown -> restart under 2
>> minutes. Several seconds of this is moving things *into* the kernel
>> that need to be there (disk drivers), and everything else to a point
>> in init where modules can be loaded in parallel, using the faster disk
>> driver, rather than in serial with slow BIOS handlers.
>
> Have you found that drivers can be reliably loaded in parallel
> these days? I'm always waiting for timeouts on four card readers
> and two optical drives, so that would be a big win for me. IIRC,
> nothing can happen in parallel during boot because the scheduler
> is initialized very late in the process. I'm not a device driver
> person, but I imagine there might be other assumptions that might
> get in the way as well.
Loading isn't the problem. The timeouts that you are waiting for are part of the probe/attach sequence. And that's strictly serialized...
Warner
More information about the freebsd-arch
mailing list