All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: "Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
	"Roger Pau Monné" <roger.pau@citrix.com>,
	"Juergen Gross" <jgross@suse.com>
Cc: Maran Wilson <maran.wilson@oracle.com>,
	tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com,
	x86@kernel.org, xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org, rkrcmar@redhat.com,
	JBeulich@suse.com, andrew.cooper3@citrix.com,
	kvm@vger.kernel.org
Subject: Re: [RFC PATCH] KVM: x86: Allow Qemu/KVM to use PVH entry point
Date: Wed, 29 Nov 2017 15:44:14 +0100	[thread overview]
Message-ID: <25d6db63-a57d-b15c-2d43-e96c506b4824@redhat.com> (raw)
In-Reply-To: <96f9b4a5-7cb6-19c3-227d-8c48916d5969@oracle.com>

On 29/11/2017 15:25, Boris Ostrovsky wrote:
>>>> zeropage is x86/Linux-specific so we'd need some sort of firmware (like
>>>> grub) between a hypervisor and Linux to convert hvm_start_info to
>>>> bootparams.
>>> qemu?
>
> I think KVM folks didn't want to do this. I can't find the thread but I
> believe it was somewhere during Clear Containers discussion. Paolo?

QEMU is the right place to parse the ELF file and save it in memory.
You would have to teach QEMU to find the Xen note in ELF-format kernels
(just like it looks for the multiboot header), and use a different
option ROM ("pvhboot.c" for example).

However I don't like to bypass the BIOS; for -kernel, KVM starts the
guest with an option ROM (linuxboot-dma.c or multiboot.S in QEMU
sources) that takes care of boot.

In either case, you would have a new option ROM.  It could either be
very simple and similar to multiboot.S, or it could be larger and do the
same task as xen-pvh.S and enlighten_pvh.c (then get the address of
startup_32 or startup_64 from FW_CFG_KERNEL_ENTRY and jump there).  The
ugly part is that the option ROM would have to know more details about
what it is going to boot, including for example whether it's 32-bit or
64-bit, so I don't really think it is a good idea.

I actually like this patch, except that I'd get the e820 memory map from
fw_cfg (see the first part of
https://github.com/bonzini/qboot/blob/master/fw_cfg.c, and extract_e820
in https://github.com/bonzini/qboot/blob/master/main.c) instead of the
second module.

Thanks,

Paolo

> 
>> But then it won't be using the PVH entry point, and would just use the
>> native one?
>>
>> My understanding was that the PVH shim inside of Linux will prepare a
>> zero-page when booted using the PVH entry point, and then jump into
>> the native boot path.
> Right, but that's not what Juergen's second option is. IIUIC with that
> option Linux starts with zeropage already prepared. No shim in the kernel.

  parent reply	other threads:[~2017-11-29 14:44 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-28 19:34 [RFC PATCH] KVM: x86: Allow Qemu/KVM to use PVH entry point Maran Wilson
2017-11-28 19:34 ` Maran Wilson
2017-11-28 19:41 ` Andrew Cooper
2017-11-28 19:41   ` Andrew Cooper
2017-11-28 19:41   ` Andrew Cooper
2017-11-28 19:58 ` Christoph Hellwig
2017-11-28 19:58 ` Christoph Hellwig
2017-11-29  8:21 ` Juergen Gross
2017-11-29  8:50   ` Roger Pau Monné
2017-11-29  8:50   ` Roger Pau Monné
2017-11-29 14:03     ` Boris Ostrovsky
2017-11-29 14:11       ` Juergen Gross
2017-11-29 14:11       ` Juergen Gross
2017-11-29 14:18         ` Roger Pau Monné
2017-11-29 14:25           ` Boris Ostrovsky
2017-11-29 14:44             ` Paolo Bonzini
2017-11-29 14:44             ` Paolo Bonzini [this message]
2017-11-29 14:47               ` Juergen Gross
2017-11-29 14:47               ` Juergen Gross
2017-11-29 14:50                 ` Paolo Bonzini
2017-11-29 14:50                 ` Paolo Bonzini
2017-11-29 14:52                 ` Andrew Cooper
2017-11-29 14:52                 ` Andrew Cooper
2017-11-30 18:23               ` Maran Wilson
2017-11-30 18:23               ` Maran Wilson
2017-12-01  8:08                 ` Paolo Bonzini
2017-12-01  8:08                 ` Paolo Bonzini
2017-12-07 23:03                   ` Maran Wilson
2017-12-07 23:03                   ` Maran Wilson
2017-11-29 14:25           ` Boris Ostrovsky
2017-11-29 14:18         ` Roger Pau Monné
2017-11-29 14:03     ` Boris Ostrovsky
2017-11-29 17:24   ` Maran Wilson
2017-11-29 17:24   ` Maran Wilson
2017-11-29  8:21 ` Juergen Gross
2017-11-29  8:59 ` Paolo Bonzini
2017-11-29 17:14   ` Maran Wilson
2017-11-29 17:14   ` Maran Wilson
2017-11-29 17:16     ` Paolo Bonzini
2017-11-29 17:16     ` Paolo Bonzini
2017-11-29  8:59 ` Paolo Bonzini

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=25d6db63-a57d-b15c-2d43-e96c506b4824@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=JBeulich@suse.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=hpa@zytor.com \
    --cc=jgross@suse.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maran.wilson@oracle.com \
    --cc=mingo@redhat.com \
    --cc=rkrcmar@redhat.com \
    --cc=roger.pau@citrix.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    --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 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.