From: "Richard W.M. Jones" <rjones@redhat.com>
To: Alexander Graf <agraf@suse.de>
Cc: qemu-devel@nongnu.org, Gleb Natapov <gleb@redhat.com>
Subject: Re: [Qemu-devel] Question about qemu firmware configuration (fw_cfg) device
Date: Sun, 18 Jul 2010 21:09:42 +0100 [thread overview]
Message-ID: <20100718200942.GL13194@amd.home.annexia.org> (raw)
In-Reply-To: <269D196D-8CE8-4E24-8EE1-39756AC55F7F@suse.de>
On Sun, Jul 18, 2010 at 07:26:57PM +0200, Alexander Graf wrote:
> On 17.07.2010, at 11:53, Richard W.M. Jones wrote:
> > On Sat, Jul 17, 2010 at 10:50:59AM +0100, Richard W.M. Jones wrote:
> >> I understand from the git logs that fw_cfg was added because the old
> >> way was to load kernel & initrd into RAM directly, but this didn't
> >> work because SeaBIOS would clear the RAM, clobbering kernel & initrd.
> >> Could we change to loading these directly into RAM, and instead
> >> provide some indication to SeaBIOS so it doesn't clobber the RAM? I'm
> >> quite prepared to do the work, just wondering if there's something
> >> else I'm not getting about this.
> >
> > Or thinking around the subject:
> >
> > Change fw_cfg so that you send a command + a physical address, and
> > fw_cfg memcpy's the kernel / initrd / etc to that physical address.
> > Then linuxboot.bin doesn't have to do the manual copying.
> >
> > Or just change linuxboot.bin so it does 32 bit inl instructions, which
> > might at least be a bit faster ...
>
> I don't see why it would be slow. ins should be emulated using coalesced mmio, no?
It knocks 1 second off libguestfs boot times on my faster 64 bit
desktop machine, and 2 seconds off with my old 32 bit laptop.
(Roughly 15% faster in both cases)
The 64 bit machine times are:
Without my patch:
real 0m7.581s
user 0m4.730s
sys 0m2.124s
With my patch:
real 0m6.579s
user 0m3.614s
sys 0m1.941s
If you want to reproduce this (you'll need a recent Fedora machine)
you can do:
$ cat qemu-wrapper
#!/bin/sh -
qemudir=/home/rjones/d/qemu
exec $qemudir/x86_64-softmmu/qemu-system-x86_64 -L $qemudir/pc-bios "$@"
$ export LIBGUESTFS_QEMU=/home/rjones/d/qemu/qemu-wrapper
$ time guestfish --ro -a /dev/null run
Obviously I'm running that several times over, discarding the first
few runs, because I'm only interested in the "hot cache" case.
By the way, even if you reject the patch as a whole, part 1/2 of the
patch is just an obvious bug fix, and I think should be applied
anyway.
http://lists.gnu.org/archive/html/qemu-devel/2010-07/threads.html#00967
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-top is 'top' for virtual machines. Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://et.redhat.com/~rjones/virt-top
next prev parent reply other threads:[~2010-07-18 20:09 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-17 9:50 [Qemu-devel] Question about qemu firmware configuration (fw_cfg) device Richard W.M. Jones
2010-07-17 9:53 ` Richard W.M. Jones
2010-07-18 17:26 ` Alexander Graf
2010-07-18 20:09 ` Richard W.M. Jones [this message]
2010-07-18 20:32 ` Alexander Graf
2010-07-19 6:23 ` Gleb Natapov
2010-07-19 7:28 ` Richard W.M. Jones
2010-07-19 7:33 ` Gleb Natapov
2010-07-19 7:40 ` Alexander Graf
2010-07-19 7:51 ` Gleb Natapov
2010-07-19 7:57 ` Alexander Graf
2010-07-19 8:01 ` Gleb Natapov
2010-07-19 8:08 ` Alexander Graf
2010-07-19 8:19 ` Gleb Natapov
2010-07-19 8:24 ` Alexander Graf
2010-07-19 8:30 ` Gleb Natapov
2010-07-19 8:41 ` Alexander Graf
2010-07-19 8:48 ` Gleb Natapov
2010-07-19 8:54 ` Alexander Graf
2010-07-19 9:00 ` Gleb Natapov
2010-07-19 9:02 ` Alexander Graf
2010-07-19 9:10 ` Gleb Natapov
2010-07-19 9:13 ` Alexander Graf
2010-07-19 9:19 ` Gleb Natapov
2010-07-19 9:21 ` Alexander Graf
2010-07-19 9:32 ` Gleb Natapov
2010-07-19 9:23 ` Richard W.M. Jones
2010-07-20 13:15 ` Jamie Lokier
2010-07-20 13:40 ` Gleb Natapov
2010-07-20 13:59 ` Richard W.M. Jones
2010-07-19 9:19 ` Richard W.M. Jones
2010-07-19 7:44 ` Richard W.M. Jones
2010-07-19 7:55 ` Gleb Natapov
2010-07-19 8:34 ` Richard W.M. Jones
2010-07-19 8:40 ` Gleb Natapov
2010-07-19 9:00 ` Richard W.M. Jones
2010-07-19 9:04 ` Richard W.M. Jones
2010-07-19 9:06 ` Gleb Natapov
2010-07-19 9:09 ` Alexander Graf
2010-07-19 9:15 ` Gleb Natapov
2010-07-19 9:16 ` Alexander Graf
2010-07-19 13:06 ` Richard W.M. Jones
2010-07-19 13:12 ` Gleb Natapov
2010-07-19 14:52 ` Anthony Liguori
2010-07-19 14:54 ` Gleb Natapov
2010-07-19 14:45 ` Anthony Liguori
2010-07-19 14:53 ` Gleb Natapov
2010-07-19 15:54 ` Anthony Liguori
2010-07-19 16:11 ` Gleb Natapov
2010-07-19 16:47 ` Richard W.M. Jones
2010-07-19 17:04 ` Gleb Natapov
2010-07-19 19:06 ` Anthony Liguori
2010-07-19 6:12 ` Gleb Natapov
2010-07-19 6:14 ` [Qemu-devel] " Gleb Natapov
2010-07-20 22:22 ` [Qemu-devel] " Blue Swirl
2010-07-21 7:27 ` Alexander Graf
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=20100718200942.GL13194@amd.home.annexia.org \
--to=rjones@redhat.com \
--cc=agraf@suse.de \
--cc=gleb@redhat.com \
--cc=qemu-devel@nongnu.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).