On 6/13/12 2:16 AM, Poul-Henning Kamp wrote: > In message <alpine.bsf.2.00.1206130909310.73...@wojtek.tensor.gdynia.pl>, > Wojci > ech Puchar writes: > > One of the major slowdowns is that we do all the device drivers > serially & synchronously. Yes definitely.
I have been looking into how to potentially defer or parallelize device_attach'es. Defer is turning out to be hard enough since each system is has different requirements to reach a state where it can run /sbin/init. I've started with the John Baldwin's multipass work and have a system stops probing/attaching devices and allows the boot to continue on. The remaining passes I'm triggering from userspace once the system is up. This is all very crude at this point and has been an some work just to understand how the kernel startup code all links together. Note systemd looks interesting from from a demand based startup scheme much like apples launchd. (note systemd uses linux process groups so porting it would take some effort) Ideally it would be nice to get to the point where many devices are only attached once there is a demand for it. Say network interfaces for example: attach it once the init scripts need to config it and then hopefully in an async fashion. Unfortunately that will require locking a bit more fine grain than the current "Giant" lock. -Russell >
signature.asc
Description: OpenPGP digital signature