qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Maran Wilson <maran.wilson@oracle.com>
To: Liam Merwick <liam.merwick@oracle.com>, qemu-devel@nongnu.org
Cc: pbonzini@redhat.com, ehabkost@redhat.com, rth@twiddle.net,
	xen-devel@lists.xenproject.org, sgarzare@redhat.com,
	mst@redhat.com, stefanha@redhat.com
Subject: Re: [Qemu-devel] [RFC 0/3] QEMU changes to do PVH boot
Date: Wed, 5 Dec 2018 22:18:25 -0800	[thread overview]
Message-ID: <07695d32-96a1-cea2-fabd-7e07c2df1fef@oracle.com> (raw)
In-Reply-To: <1544049446-6359-1-git-send-email-liam.merwick@oracle.com>

On 12/5/2018 2:37 PM, Liam Merwick wrote:
> For certain applications it is desirable to rapidly boot a KVM virtual
> machine. In cases where legacy hardware and software support within the
> guest is not needed, QEMU should be able to boot directly into the
> uncompressed Linux kernel binary with minimal firmware involvement.
>
> There already exists an ABI to allow this for Xen PVH guests and the ABI
> is supported by Linux and FreeBSD:
>
>     https://xenbits.xen.org/docs/unstable/misc/pvh.html
>
> Details on the Linux changes: https://lkml.org/lkml/2018/4/16/1002

In case anyone wants to grab the patches and give it a try, I've just 
posted an updated version of the Linux patches rebased to the latest 
mainline code:

https://lkml.org/lkml/2018/12/6/26

No functional changes from before, just some minor conflict resolution 
as part of the rebase.

Thanks,
-Maran

> qboot patches: http://patchwork.ozlabs.org/project/qemu-devel/list/?series=80020
>
> This patch series provides QEMU support to read the ELF header of an
> uncompressed kernel binary and get the 32-bit PVH kernel entry point
> from an ELF Note.  This is called when initialising the machine state
> in pc_memory_init().  Later on in load_linux() if the kernel entry
> address is present, the uncompressed kernel binary (ELF) is loaded
> and qboot does futher initialisation of the guest (e820, etc.) and
> jumps to the kernel entry address and boots the guest.
>
>
> Usіng the method/scripts documented by the NEMU team at
>
>     https://github.com/intel/nemu/wiki/Measuring-Boot-Latency
>     https://lists.gnu.org/archive/html/qemu-devel/2018-12/msg00200.html
>
> below are some timings measured (vmlinux and bzImage from the same build)
> Time to get to kernel start is almost halved (95ṁs -> 48ms)
>
> QEMU + qboot + vmlinux (PVH + 4.20-rc4)
>   qemu_init_end: 41.550521
>   fw_start: 41.667139 (+0.116618)
>   fw_do_boot: 47.448495 (+5.781356)
>   linux_startup_64: 47.720785 (+0.27229)
>   linux_start_kernel: 48.399541 (+0.678756)
>   linux_start_user: 296.952056 (+248.552515)
>
> QEMU + qboot + bzImage:
>   qemu_init_end: 29.209276
>   fw_start: 29.317342 (+0.108066)
>   linux_start_boot: 36.679362 (+7.36202)
>   linux_startup_64: 94.531349 (+57.851987)
>   linux_start_kernel: 94.900913 (+0.369564)
>   linux_start_user: 401.060971 (+306.160058)
>
> QEMU + bzImage:
>   qemu_init_end: 30.424430
>   linux_startup_64: 893.770334 (+863.345904)
>   linux_start_kernel: 894.17049 (+0.400156)
>   linux_start_user: 1208.679768 (+314.509278)
>
>
> Liam Merwick (3):
>    pvh: Add x86/HVM direct boot ABI header file
>    pc: Read PVH entry point from ELF note in kernel binary
>    pvh: Boot uncompressed kernel using direct boot ABI
>
>   hw/i386/pc.c                | 344 +++++++++++++++++++++++++++++++++++++++++++-
>   include/elf.h               |  10 ++
>   include/hw/xen/start_info.h | 146 +++++++++++++++++++
>   3 files changed, 499 insertions(+), 1 deletion(-)
>   create mode 100644 include/hw/xen/start_info.h
>

      parent reply	other threads:[~2018-12-06  6:19 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-05 22:37 [Qemu-devel] [RFC 0/3] QEMU changes to do PVH boot Liam Merwick
2018-12-05 22:37 ` [Qemu-devel] [RFC 1/3] pvh: Add x86/HVM direct boot ABI header file Liam Merwick
2018-12-11 14:01   ` Stefan Hajnoczi
2018-12-11 14:57     ` Liam Merwick
2018-12-11 15:03       ` Daniel P. Berrangé
2018-12-21 20:03       ` Liam Merwick
2018-12-05 22:37 ` [Qemu-devel] [RFC 2/3] pc: Read PVH entry point from ELF note in kernel binary Liam Merwick
2018-12-11 14:17   ` Stefan Hajnoczi
2018-12-21 20:03     ` Liam Merwick
2018-12-05 22:37 ` [Qemu-devel] [RFC 3/3] pvh: Boot uncompressed kernel using direct boot ABI Liam Merwick
2018-12-11 17:11   ` Stefano Garzarella
2018-12-11 18:35     ` Maran Wilson
2018-12-12 15:28       ` Stefano Garzarella
2018-12-12 17:36         ` Maran Wilson
2018-12-06  0:01 ` [Qemu-devel] [RFC 0/3] QEMU changes to do PVH boot no-reply
2018-12-06  6:18 ` Maran Wilson [this message]

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=07695d32-96a1-cea2-fabd-7e07c2df1fef@oracle.com \
    --to=maran.wilson@oracle.com \
    --cc=ehabkost@redhat.com \
    --cc=liam.merwick@oracle.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    --cc=sgarzare@redhat.com \
    --cc=stefanha@redhat.com \
    --cc=xen-devel@lists.xenproject.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).