All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gleb Natapov <gleb@redhat.com>
To: "Richard W.M. Jones" <rjones@redhat.com>
Cc: qemu-devel@nongnu.org, agraf@suse.de
Subject: [Qemu-devel] Re: Question about qemu firmware configuration (fw_cfg) device
Date: Mon, 19 Jul 2010 09:14:49 +0300	[thread overview]
Message-ID: <20100719061449.GT4689@redhat.com> (raw)
In-Reply-To: <20100717095059.GA19767@amd.home.annexia.org>

On Sat, Jul 17, 2010 at 10:50:59AM +0100, Richard W.M. Jones wrote:
> I'm trying to speed up the process of loading kernel and initrd.
> 
> I found that the main loop which loads these into qemu memory does it
> via executing in the guest:
> 
>   rep insb (%dx),%es:(%edi)
> 
> In other words, reading it byte-at-a-time from an emulated IO port.
> This is very slow[1] when your initrd is > 100MB like mine is.
> 
> Questions:
> 
> Is fw_cfg a purely qemu concept?  Does this BIOS firmware port
> 0x510-0x511 exist in real hardware?
> 
It is purely qemu concept.

> 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.
> 
> Rich.
> 
> [1] Several seconds of wallclock time, and according to gprof, the
> function 'fw_cfg_io_readb' accounts for > 50% of the time taken in
> qemu between qemu starting and us entering the Linux kernel.
> 
Several seconds is not too bad for 100M. Have you tested how much insl
improves this?

--
			Gleb.

  parent reply	other threads:[~2010-07-19  6:14 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
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 ` Gleb Natapov [this message]
2010-07-20 22:22 ` 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=20100719061449.GT4689@redhat.com \
    --to=gleb@redhat.com \
    --cc=agraf@suse.de \
    --cc=qemu-devel@nongnu.org \
    --cc=rjones@redhat.com \
    /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.