linux-embedded.vger.kernel.org archive mirror
 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: 47+ 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
     [not found]   ` <20090421064346.GB8020-X9Un+BFzKDI@public.gmane.org>
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:59               ` David VomLehn
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 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-21 13:35   ` Arjan van de Ven
     [not found]     ` <20090421063549.3b71881d-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
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:26             ` Ingo Molnar
     [not found]               ` <20090421142627.GA18129-X9Un+BFzKDI@public.gmane.org>
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 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-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 21:08                               ` Alan Cox
2009-04-22 21:24                                 ` Alan Stern
2009-04-24  0:35                                   ` David VomLehn
     [not found]                                     ` <20090424003555.GA31173-CFZJ1or75eBPWxJt6d6B6bQa8qPdvLwY@public.gmane.org>
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 22:19                                             ` Jamie Lokier
     [not found]                                               ` <20090424221951.GC18260-yetKDKU6eevNLxjTenLetw@public.gmane.org>
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  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:46                                                                     ` Jamie Lokier
     [not found]                                                       ` <20090425014152.GD23106-yetKDKU6eevNLxjTenLetw@public.gmane.org>
2009-04-26 17:55                                                         ` 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).