From: Wolfgang Denk <wd@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] Sandbox question
Date: Mon, 23 Apr 2012 23:17:57 +0200 [thread overview]
Message-ID: <20120423211757.E8AD1200261@gemini.denx.de> (raw)
In-Reply-To: <201204231657.18531.vapier@gentoo.org>
Dear Mike Frysinger,
In message <201204231657.18531.vapier@gentoo.org> you wrote:
>
> > That's why I wrote "or rather from fd 0".
>
> reading directly from fd 0 makes no difference. stdin is stdin. if stdin is
stdin is stdin (a FILE pointer which uses all the automatic buffering
from stdio), and fd 0 is fd 0 (a plain file descriptoor you can use as
you like).
> backed by a tty, you need to behave differently than if it's backed by a pipe.
This does not play any role in this context, or does it?
> > That's why I suggested to use select() or poll() to poll for available
> > characters, just like the hardware does. Only we do NOT want to tun
> > this in a tight loop. We will most likely want to add a sufficiently
> > large delay to keep CPU load in reasonable bounds.
>
> where exactly do you propose adding this delay ? tstc() is called in many
> places (not just the main console loop), many of which are done simply to
> handle the unlikely CTRL+C interrupt. thus we don't want tstc() delaying at
> all or it'll slow down random CPU-bound operations.
It makes _zero_ sense to burn 100% CPU with this code. Adding a few
10 ... a few 100 us delay tstc() will probably not be noticed.
Did you try that out?
> also, what you're proposing is changing the behavior of u-boot when it's in
> the sandbox so that it acts less like the hardware. when you run u-boot on
> the hardware and it's sitting at the prompt, u-boot is running the cpu at
> 100%.
Correct. But then U-Boot is the only master of the CPU, and nothing
else can be run in parallel.
In the sandbox, U-Boot is an ordinary user space application and as
such is supposed to behave well. Burning 100% CPU is a polling input
loop is about the most stupid thing we can do.
> > Why invent new methods when we can encapsulate this in the input
> > interface?
>
> i'm not inventing new methods. i'm telling you that the sandbox OS layer
> today cannot access the C library's errno because u-boot's own implementation
> of errno is overriding it. so any call sandbox makes to the OS (like read()
> or select() or poll()) that results in an error, sandbox has no way of knowing
> the underlying reason.
Than this needs to be fixed for sandbox?
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
If a train station is a place where a train stops,
then what's a workstation?
next prev parent reply other threads:[~2012-04-23 21:17 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-23 6:41 [U-Boot] Sandbox question Wolfgang Denk
2012-04-23 15:41 ` Mike Frysinger
2012-04-23 17:32 ` Matthias Weisser
2012-04-23 17:39 ` Wolfgang Denk
2012-04-23 17:49 ` Matthias Weisser
2012-04-23 18:30 ` Wolfgang Denk
2012-04-24 9:25 ` Matthias Weißer
2012-04-23 17:58 ` Simon Glass
2012-04-23 18:39 ` Wolfgang Denk
2012-04-23 18:54 ` Mike Frysinger
2012-04-23 19:03 ` Mike Frysinger
2012-04-23 19:33 ` Wolfgang Denk
2012-04-23 20:57 ` Mike Frysinger
2012-04-23 21:16 ` Mike Frysinger
2012-04-23 21:17 ` Wolfgang Denk [this message]
2012-04-23 21:32 ` Mike Frysinger
2012-04-23 21:51 ` [U-Boot] Sandbox: auto exiting on pipe closure Mike Frysinger
2012-08-09 20:39 ` Wolfgang Denk
2012-08-10 0:47 ` Mike Frysinger
-- strict thread matches above, loose matches on Subject: below --
2013-12-06 23:36 [U-Boot] [PATCH 0/8] Secure boot improvements and test on Beaglebone Black Simon Glass
2013-12-30 7:40 ` [U-Boot] sandbox question TigerLiu at viatech.com.cn
2013-12-31 0:42 ` TigerLiu at viatech.com.cn
2014-01-07 23:58 ` Simon Glass
2014-01-08 0:52 ` TigerLiu at viatech.com.cn
2014-01-08 3:46 ` Abraham Varricatt
2014-01-08 10:30 ` TigerLiu at viatech.com.cn
2011-12-01 16:35 [U-Boot] Sandbox question Andreas Bießmann
2011-12-01 18:13 ` Simon Glass
2011-12-01 19:21 ` Mike Frysinger
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=20120423211757.E8AD1200261@gemini.denx.de \
--to=wd@denx.de \
--cc=u-boot@lists.denx.de \
/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