From: Rob Landley <rob@landley.net>
To: Andy Green <andy@warmcat.com>
Cc: celinux-dev@tree.celinuxforum.org,
Robert Schwebel <r.schwebel@pengutronix.de>,
linux-embedded@vger.kernel.org
Subject: Re: [Celinux-dev] CELF Project Proposal- Refactoring Qi, lightweight bootloader
Date: Sun, 27 Dec 2009 17:15:53 -0600 [thread overview]
Message-ID: <200912271715.54249.rob@landley.net> (raw)
In-Reply-To: <4B372EEB.2000902@warmcat.com>
On Sunday 27 December 2009 03:54:51 Andy Green wrote:
> On 12/27/09 07:17, Somebody in the thread at some point said:
>
> Hi Rob -
Before replying, I note that Mark Miller and I gave a presentation entitled
"Developing for non-x86 targets using QEMU" Ohio LinuxFest in October.
http://impactlinux.com/fwl/downloads/presentation.pdf
http://impactlinux.com/fwl/presentation.html
There's even horribly mangled audio of our rushed 1 hour presentation. (The
slides are for a day-long course and we had 55 minutes to give a talk, so we
skimmed like mad. Unfortunately, the netbook they used for audio recording
had the mother of all latency spikes whenever the cache flush did an actual
flash erase and write, so there are regular audio dropouts the whole way
through.) Still, it's somewhere under:
http://www.archive.org/details/OhioLinuxfest2009
I've also spent the last few years developing a project that produces native
built environments for various QEMU targets and documents how to bootstrap
various distros under them:
http://impactlinux.com/fwl
So I do have some firsthand experience here.
> >> Fedora provides a whole solution there, with the restriction it's
> >> designed for native build, not cross.
> >
> > QEMU: it's not just for breakfast anymore.
>
> That's right Qemu often requires lunch, teatime and supper too to build
> anything :-)
Which is why you hook it up to distcc so it can call out to the cross
compiler, which speeds up the build and lets you take advantage of SMP.
(Pages 217-226 of the above PDF.)
That's also why my FWL project uses a statically linked version of busybox,
because the static linking avoids the extra page retranslations on each exec
and thus sped up the ./configure stage by 20%. (Pages 235-236 of PDF.)
There's more things you can do to speed it up if you want to go down that
rabbit hole (which the presentation does), and there's more work being done in
qemu. (TCG was originally a performance hit but has improved since, although
it varies widely by platform and is its own rabbit hole. Also switching to
gigabit NIC emulation with jumbo frames helped distcc a lot.)
But in general, Moore's Law says that qemu on current PC hardware is about the
speed of current PC hardware seven years ago. (And obviously nobody ever
built anything before 2003. :)
> Newer ARM platforms like Cortex8+ and the Marvell Sheevaplug will
> outstrip emulated performance on a normal PC. There are 2GHz multi-core
> ARMs coming as well apparently. So I took the view I should ignore Qemu
> and get an early start on the true native build that will be the future
> of "native build" as opposed to cross due to that.
Pages 24-34 of the above PDF go over this. The first two pages are on the
advantages of native compiling on real hardware, the next eight pages are on
the disadvantages. It can certainly be made to work, especially in a large
corporation willing to spend a lot of money on hardware as a _prerequisite_ to
choosing a deployment platform.
For hobbyists, small businesses, and open source developers in general, there
are significant advantages to emulation. (Page 208 comes to mind.) And if you
_are_ going to throw money at hardware, x86-64 continues to have better
price/performance ratio, which was always its thing.
> The point of the distro is you just let them build the bulk of it, just
> installing binary packages. You're only rebuilding the bits you are
> changing for your application.
Pages 68-71. If your definition of embedded development is using off the shelf
hardware and installing prebuilt binary packages into it, life becomes a lot
easier, sure.
> For a lot of cases that's a few small
> app packages that are mainly linking against stuff from the distro and
> they're not too bad to do natively.
Pages 78-84
> (In addition my workflow is to edit
> on a host PC
Pages 178-180
> and use scripts to teleport a source tree tarball to the
> device where it's built as a package every time and installed together
> with its -devel,
Pages 181-202
> so everything is always under package control).
Package control or source control? (Different page ranges...)
> -Andy
Rob
--
Latency is more important than throughput. It's that simple. - Linus Torvalds
next prev parent reply other threads:[~2009-12-27 23:15 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-17 8:31 CELF Project Proposal- Refactoring Qi, lightweight bootloader Matt Hsu
2009-12-17 9:21 ` Andy Green
2009-12-21 19:30 ` [Celinux-dev] " Wolfgang Denk
2009-12-21 19:32 ` Mike Frysinger
2009-12-21 20:17 ` Andy Green
2009-12-21 21:38 ` Wolfgang Denk
2009-12-21 22:38 ` Andy Green
2009-12-21 23:17 ` Wookey
2009-12-21 23:19 ` Robert Schwebel
2009-12-22 8:22 ` Andy Green
2009-12-22 11:12 ` Robert Schwebel
2009-12-22 22:23 ` Andy Green
2009-12-22 23:28 ` Robert Schwebel
2009-12-23 8:38 ` Andy Green
2009-12-23 8:56 ` Robert Schwebel
2009-12-23 9:29 ` Andy Green
2009-12-23 9:43 ` Robert Schwebel
2009-12-27 7:27 ` Rob Landley
2009-12-27 10:09 ` Andy Green
2009-12-28 0:21 ` Rob Landley
2009-12-28 11:33 ` Andy Green
2009-12-27 7:17 ` Rob Landley
2009-12-27 9:54 ` Andy Green
2009-12-27 23:15 ` Rob Landley [this message]
2009-12-28 10:27 ` Andy Green
2009-12-28 19:57 ` Peter Korsgaard
2009-12-28 20:20 ` Andy Green
2009-12-29 4:25 ` Rob Landley
2009-12-29 11:11 ` Andy Green
2009-12-17 23:13 ` Tim Bird
2009-12-21 2:45 ` [Celinux-dev] " Rob Landley
2009-12-21 5:51 ` Matt Hsu
2009-12-21 8:00 ` Rob Landley
2009-12-21 9:54 ` Andy Green
2009-12-21 20:49 ` Wookey
2009-12-23 2:28 ` Jamie Lokier
2009-12-23 8:48 ` Andy Green
2009-12-29 13:13 ` Jamie Lokier
2009-12-29 13:36 ` Andy Green
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=200912271715.54249.rob@landley.net \
--to=rob@landley.net \
--cc=andy@warmcat.com \
--cc=celinux-dev@tree.celinuxforum.org \
--cc=linux-embedded@vger.kernel.org \
--cc=r.schwebel@pengutronix.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;
as well as URLs for NNTP newsgroup(s).