Re: Wait for console to become available, v3.2

From: Ingo Molnar
Date: Tue Apr 21 2009 - 09:51:54 EST



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

> On Tue, 21 Apr 2009 08:43:46 +0200
> Ingo Molnar <mingo@xxxxxxx> wrote:
>
> > The proper approach would be to use one of the async_synchronize*()
> > facilities in kernel/async.c to properly order the opening of the
> > console with device init.
>
> Unfortunately this is not the answer.
>
> First of all, USB does not use the async_* infrastructure, so it does
> not do anything.

[ Of course it does not. Two kernel cycles ago nothing had any async
infrastructure ;-) We barely have any use of it today. But cases
like this are the way to extend its use. ]

> But more importantly... USB *CANNOT* do this fundamental
> operation. USB does not have the capability to know when you have
> seen all devices that are connected. Devices just show up a random
> amount of time after you turn the power on for the bus.... there's
> no "and now we've seen all" operation.

Yes - and this is fundamentally true of any hotplug bus design.

Nevertheless the wish has been expressed to wait for such a device
to become available, in this very thread we are discussing.

What i'm saying is: instead of "wait 2000 msecs, maybe it works out"
hack, there should be a proper sleep+event based approach to the
same. With perhaps a _timeout_ for the "no console arrived" negative
case as well. (which timeout can be set to zero in the "I _know_
there's no console around".)

Do you see the fundamental design difference between the two
solutions?

Ingo
--
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/