Re: [patch 0/3] fastboot patches series 1

From: Ingo Molnar
Date: Sun Jul 20 2008 - 04:31:47 EST



* Arjan van de Ven <arjan@xxxxxxxxxxxxx> wrote:

> Hi,
>
> this 3 patch series introduces the concept of "asynchronous initcalls".
> This is a new initcall level (6a) that has the following semantics:
> 1) Level 6a gets run asynchronously from the regular "driver" initcalls
> 2) Level 6a starts after level 5 (fs_initcall).
> 3) Within the 6a category, the initcalls are processed sequentially;
> there is no parallelism between them. The parallelism is more
> like a bottom halve than it is like a softirq this way.
> This is a nice property since it leads to predictable device ordering
> while being able to move various pieces out of the critical boot path
> 4) The kernel will synchronize at the end of all initcalls to insure
> that we don't free initmem until all this is done (trust me, we need
> this)
>
> With these 3 patches I managed to shave off 0.4 seconds off my kernel
> boot (this may sound little, but it's a reduction from 1.9 seconds to
> a little under 1.5 seconds, which is significant both compared to the
> kernel boot time as well as the full distro boot time on this box)

nice idea - and i like the way it's done gradually. Most previous
attempts at "parallel bootup" had the fundamental problem if trying to
do too much at once.

I've created a tip/fastboot experimental/test topic for this and pushed
it out. (see the URI below)

It's not integrated into tip/master yet - is the problem reported by
Simon Arlott understood?

Ingo

git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git fastboot

------------------>
Arjan van de Ven (3):
fastboot: create a "asynchronous" initlevel
fastboot: turn the USB hostcontroller initcalls into async initcalls
fastboot: convert a few non-critical ACPI drivers to async initcalls
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/