From: Avi Kivity <avi@redhat.com>
To: Alexander Graf <agraf@suse.de>
Cc: Gleb Natapov <gleb@redhat.com>,
qemu-devel <qemu-devel@nongnu.org>,
"Richard W.M. Jones" <rjones@redhat.com>
Subject: Re: [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends
Date: Tue, 11 Oct 2011 11:26:14 +0200 [thread overview]
Message-ID: <4E940BB6.2000400@redhat.com> (raw)
In-Reply-To: <5C80782F-C30A-4F35-93FD-0397A1040AFF@suse.de>
On 10/11/2011 11:19 AM, Alexander Graf wrote:
> >>
> >> Of this, 1.4 seconds is the time required by LinuxBoot to copy the
> >> kernel+initrd. If I used an uncompressed initrd, which I really want
> >> to, to avoid decompression overhead, this increases to ~1.7 seconds.
> >> So the LinuxBoot ROM is ~60% of total QEMU execution time, or 40%
> >> of total sandbox execution overhead.
> >
> > One thing we can do is boot a guest and immediately snapshot it, before it runs any application specific code. Subsequent invocations will MAP_PRIVATE the memory image and COW their way. This avoids the kernel initialization time as well.
>
> That doesn't allow modification of -append
Is it really needed?
> and gets you in a pretty bizarre state when doing updates of your host files, since then you have 2 different paths: full boot and restore. That's yet another potential source for bugs.
Typically you'd check the timestamps to make sure you're running an
up-to-date version.
>
> >
> >>
> >> For comparison I also did a test building a bootable ISO using ISOLinux.
> >> This required 700 ms for the boot time, which is appoximately 1/2 the
> >> time reqiured for direct kernel/initrd boot. But you have to then add
> >> on time required to build the ISO on every boot, to add custom kernel
> >> command line args. So while ISO is faster than LinuxBoot currently
> >> there is still non-negligable overhead here that I want to avoid.
> >
> > You can accept parameters from virtio-serial or some other channel. Is there any reason you need them specifically as *kernel* command line parameters?
>
> That doesn't work for kernel parameters. It also means things would have to be rewritten needlessly. Some times we can't easily change the way parameters are passed into the guest either, for example when running a random (read: old, think of RHEL5) distro installation initrd.
This use case is not installation, it's for app sandboxing.
> And I don't see the point why we would have to shoot yet another hole into the guest just because we're too unwilling to make an interface that's perfectly valid horribly slow.
rep/ins is exactly like dma+wait for this use case: provide an address,
get a memory image in return. There's no need to add another interface,
we should just optimize the existing one.
--
error compiling committee.c: too many arguments to function
next prev parent reply other threads:[~2011-10-11 9:26 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-10 17:08 [Qemu-devel] Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends Daniel P. Berrange
2011-10-10 18:53 ` Anthony Liguori
2011-10-10 19:01 ` Alexander Graf
2011-10-11 8:23 ` [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was " Daniel P. Berrange
2011-10-11 8:43 ` Richard W.M. Jones
2011-10-11 9:15 ` Avi Kivity
2011-10-11 9:19 ` Alexander Graf
2011-10-11 9:26 ` Avi Kivity [this message]
2011-10-11 9:38 ` Alexander Graf
2011-10-11 9:49 ` Avi Kivity
2011-10-11 9:56 ` Gleb Natapov
2011-10-11 9:59 ` Avi Kivity
2011-10-11 10:28 ` Gleb Natapov
2011-10-11 13:12 ` Anthony Liguori
2011-10-11 13:14 ` Alexander Graf
2011-10-11 13:17 ` Gleb Natapov
2011-10-11 13:19 ` Anthony Liguori
2011-10-11 13:23 ` Avi Kivity
2011-10-11 13:24 ` Gleb Natapov
2011-10-11 13:29 ` Anthony Liguori
2011-10-11 13:45 ` Avi Kivity
2011-10-11 13:58 ` Anthony Liguori
2011-10-11 14:01 ` Daniel P. Berrange
2011-10-11 14:33 ` Anthony Liguori
2011-10-11 14:34 ` Alexander Graf
2011-10-11 14:36 ` Daniel P. Berrange
2011-10-11 9:50 ` Gleb Natapov
2011-10-11 9:55 ` Avi Kivity
2011-10-11 13:17 ` Anthony Liguori
2011-10-11 13:22 ` Gleb Natapov
2011-10-15 14:19 ` Kevin O'Connor
2011-10-11 9:27 ` Daniel P. Berrange
2011-10-11 9:39 ` Avi Kivity
2011-10-11 9:49 ` Daniel P. Berrange
2011-10-11 9:50 ` Avi Kivity
2011-10-11 10:09 ` Daniel P. Berrange
2011-10-15 10:00 ` Blue Swirl
2011-10-15 16:16 ` Richard W.M. Jones
2011-10-16 17:20 ` Lluís Vilanova
2011-10-11 9:08 ` [Qemu-devel] " Avi Kivity
2011-10-11 9:18 ` Daniel P. Berrange
2011-10-11 9:35 ` Avi Kivity
2011-10-10 23:57 ` Kevin O'Connor
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=4E940BB6.2000400@redhat.com \
--to=avi@redhat.com \
--cc=agraf@suse.de \
--cc=gleb@redhat.com \
--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 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).