On Tue, 30 Sep 2008, Ingo Molnar wrote:
Hell no.
We do not want any implicit parallelism in the initcalls. That way lies
madness.
The probe functions that explicitly know that they are slow (like USB
detection and/or other individual drivers that have timeouts) should put
themselves in the background. We should _not_ use the dependency chain to
do so automatically, because for most cases drivers are totally
independent, but we still want a _reliable_ and _repeatable_ ordering.
Which means that I will not accept stuff that makes for a parallel bootup
as a general initcall notion. I want things like network devices to show
up in the same order for the same kernel, thank you very much - even if
there is absolutely _zero_ ordering constraints between two independent
network drivers.
Anything else will inevitably cause just totally random and undebuggable
problems.
> i think the topological ordering should not be just an extension of the
Yes, it should be explicit.
However, I don't agree with the notion of having initcalls point to other
initcalls. One big _idea_ of initcalls is that you can put them anywhere
in the source code, and that CONFIG_XYZ variables will automatically run
them or not depending on whether the code was compiled in. Having
something like:
> so instead of the current hardcoded levels:
would be a TOTAL DISASTER, because if you do that, then you are
essentially back to the insane situation where people need to know what
other parts are enabled.
So no. No "one call depends on another" crap.
But I think we could add a separate notion of a dependancy point, and have
a setup where we describe "initcall X needs to happen before point A" and
"initcall Z needs to happen after point A".
And then we can create a separate set of these dependency points, so that
X and Y don't have to know about each other, they just have to have some
knowledge about some common synchronization point - one that exists
regardless of whether X or Y are even compiled in!
Linus
--
| Linus Torvalds | Linux 2.6.21-rc4 |
| Greg Kroah-Hartman | [PATCH 008/196] Chinese: add translation of volatile-considered-harmful.txt |
| Andrew Morton | -mm merge plans for 2.6.23 |
| Stephane Eranian | Re: [PATCH] fix up perfmon to build on -mm |
git: | |
| David Miller | [GIT]: Networking |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Natalie Protasevich | [BUG] New Kernel Bugs |
| Linus Torvalds | Re: silent semantic changes with reiser4 |
| jim owens | Re: ext4 - getting at birth time (file create time) and getting/setting nanosecond... |
| Alan Cox | Re: impact of 4k sector size on the IO & FS stack |
| Peter Zijlstra | Re: + mm-balance_dirty_pages-reduce-calls-to-global_page_state-to-reduce-c ache-re... |
