All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: David Brownell <david-b@pacbell.net>
Cc: David VomLehn <dvomlehn@cisco.com>,
	Arjan van de Ven <arjan@infradead.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux USB Mailing List <linux-usb@vger.kernel.org>,
	Linux Embedded Mailing List <linux-embedded@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: Wait for console to become available, v3.2
Date: Tue, 21 Apr 2009 10:03:04 +0200	[thread overview]
Message-ID: <20090421080304.GA12512@elte.hu> (raw)
In-Reply-To: <200904210013.48551.david-b@pacbell.net>


* David Brownell <david-b@pacbell.net> wrote:

> On Monday 20 April 2009, Ingo Molnar 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.
> 
> Stepping back a moment from "how" to make sure "what" is agreed 
> on.
> 
> I think I see three scenarios here:
> 
>  - Classic PC or server, where there's a meaningful console;
> 
>  - Deeply embedded systems, where there isn't;
> 
>  - Development stages of "deeply embedded", where there *may* be 
>    one.
> 
> If that's correct, then async_synchronize() isn't a full answer...
> 
> I think a fair number of cases can be papered over with a serial 
> console with no hardware flow control, which isn't hooked up to 
> anything.  Maybe the board needs a test/development jig to get 
> one; without it, the "console" bits spill out into the aether.  
> Linux can dump bits to ttyS0, which will act like /dev/null.
> 
> But the problem case here seems to be one where such un-hooked-up 
> serial ports are not realistic options.  Which is why the 
> regression in USB console functionality has been troublesome.
> 
> Is that correct?

Not sure i understand the complication.

The practical issue addressed by this particular patch i've replied 
to is that if /dev/console is sys_open()-ed by an app "too early", 
an error code is returned and subsequently user-space (and all its 
child tasks) remain console-less.

Whether the console has flow control or not is immaterial. 
Initialization sequence ordering details should be transparent as 
far as sys_open() of a console is concerned.

If there is _no console_, then obviously there's nothing to wait for 
and the async wait will succeed immediately. The console driver 
still returns an error on sys_open() but that is expected behavior.

The solution proposed in the patch i'm replying to is a boot flag 
that causes the kernel to wait N milliseconds. This is incorrect and 
wrong on several levels. If the console can be initialized via a 
proper handshake that should be exposed precisely - we should not 
wait neither longer nor shorter than needed. _If_ there's no proper 
handshake and a magic delay is needed (because there's some 
hardware-internal delay needed at init time) before the console can 
be used then that should be in the console driver itself and the 
async-wait will wait for that automatically.

But never should we have delays like this in generic code. 
Regardless of embedded versus server versus desktop issues.

	Ingo

  reply	other threads:[~2009-04-21  8:03 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-20 23:40 Wait for console to become available, v3.2 David VomLehn
2009-04-21  6:43 ` Ingo Molnar
2009-04-21  6:43   ` Ingo Molnar
     [not found]   ` <20090421064346.GB8020-X9Un+BFzKDI@public.gmane.org>
2009-04-21  7:13     ` David Brownell
2009-04-21  7:13       ` David Brownell
2009-04-21  8:03       ` Ingo Molnar [this message]
2009-04-21 17:11       ` David Woodhouse
2009-04-21 17:29         ` David VomLehn
     [not found]           ` <20090421172929.GC8251-CFZJ1or75eBPWxJt6d6B6bQa8qPdvLwY@public.gmane.org>
2009-04-21 17:37             ` Linus Torvalds
2009-04-21 17:37               ` Linus Torvalds
2009-04-21 17:59               ` David VomLehn
2009-04-21 17:41             ` David Woodhouse
2009-04-21 17:41               ` David Woodhouse
2009-04-21 17:31         ` Linus Torvalds
     [not found]           ` <alpine.LFD.2.00.0904211016190.2199-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2009-04-21 19:25             ` Alan Cox
2009-04-21 19:25               ` Alan Cox
2009-04-21 23:17               ` David VomLehn
2009-04-22  8:25           ` Jamie Lokier
2009-04-22  9:11             ` Alan Cox
     [not found]               ` <20090422101109.7beee3ee-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
2009-04-22 10:39                 ` Jamie Lokier
2009-04-22 10:39                   ` Jamie Lokier
2009-04-21 13:35   ` Arjan van de Ven
     [not found]     ` <20090421063549.3b71881d-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2009-04-21 13:50       ` Ingo Molnar
2009-04-21 13:50         ` Ingo Molnar
     [not found]         ` <20090421135034.GA30114-X9Un+BFzKDI@public.gmane.org>
2009-04-21 14:05           ` Jamie Lokier
2009-04-21 14:05             ` Jamie Lokier
2009-04-21 14:26             ` Ingo Molnar
     [not found]               ` <20090421142627.GA18129-X9Un+BFzKDI@public.gmane.org>
2009-04-21 14:37                 ` Alan Cox
2009-04-21 14:37                   ` Alan Cox
2009-04-22  8:22                   ` Jamie Lokier
2009-04-22  9:13                     ` Alan Cox
2009-04-21 16:42               ` David VomLehn
2009-04-21 14:36             ` Alan Stern
     [not found]               ` <Pine.LNX.4.44L0.0904211026080.2981-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2009-04-21 16:52                 ` David VomLehn
2009-04-21 16:52                   ` David VomLehn
2009-04-21 19:09                   ` Alan Stern
     [not found]                     ` <Pine.LNX.4.44L0.0904211457150.3986-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2009-04-21 23:08                       ` David VomLehn
2009-04-21 23:08                         ` David VomLehn
2009-04-22 15:40                         ` Alan Stern
     [not found]                           ` <Pine.LNX.4.44L0.0904221111320.3405-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2009-04-22 20:54                             ` David VomLehn
2009-04-22 20:54                               ` David VomLehn
2009-04-22 21:08                               ` Alan Cox
2009-04-22 21:24                                 ` Alan Stern
2009-04-24  0:35                                   ` David VomLehn
2009-04-24  0:35                                     ` David VomLehn
     [not found]                                     ` <20090424003555.GA31173-CFZJ1or75eBPWxJt6d6B6bQa8qPdvLwY@public.gmane.org>
2009-04-24 19:20                                       ` Alan Stern
2009-04-24 19:20                                         ` Alan Stern
     [not found]                                         ` <Pine.LNX.4.44L0.0904241502440.4531-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2009-04-24 21:32                                           ` David VomLehn
2009-04-24 21:32                                             ` David VomLehn
2009-04-24 22:19                                             ` Jamie Lokier
     [not found]                                               ` <20090424221951.GC18260-yetKDKU6eevNLxjTenLetw@public.gmane.org>
2009-04-24 23:10                                                 ` David VomLehn
2009-04-24 23:10                                                   ` David VomLehn
     [not found]                                                   ` <20090424231013.GA18340-CFZJ1or75eBPWxJt6d6B6bQa8qPdvLwY@public.gmane.org>
2009-04-25  1:41                                                     ` Jamie Lokier
2009-04-25  1:41                                                       ` Jamie Lokier
2009-04-25  3:11                                                       ` Alan Stern
2009-04-26 19:52                                                         ` Jamie Lokier
2009-04-26 21:20                                                           ` Alan Stern
2009-04-26 21:37                                                             ` Jamie Lokier
2009-04-26 22:36                                                               ` Kay Sievers
2009-04-26 23:12                                                                 ` Jamie Lokier
2009-04-26 23:23                                                                   ` Kay Sievers
2009-04-26 23:23                                                                     ` Kay Sievers
2009-04-26 23:46                                                                     ` Jamie Lokier
     [not found]                                                       ` <20090425014152.GD23106-yetKDKU6eevNLxjTenLetw@public.gmane.org>
2009-04-26 17:55                                                         ` David VomLehn
2009-04-26 17:55                                                           ` David VomLehn
2009-04-22  5:35                       ` David VomLehn
2009-04-22  5:35                         ` David VomLehn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090421080304.GA12512@elte.hu \
    --to=mingo@elte.hu \
    --cc=akpm@linux-foundation.org \
    --cc=arjan@infradead.org \
    --cc=david-b@pacbell.net \
    --cc=dvomlehn@cisco.com \
    --cc=hpa@zytor.com \
    --cc=linux-embedded@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.