All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefano Stabellini <sstabellini@kernel.org>
To: "Luis R. Rodriguez" <mcgrof@kernel.org>
Cc: "Julien Grall" <julien.grall@arm.com>,
	"Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>,
	"Juergen Gross" <jgross@suse.com>,
	"Matt Fleming" <matt@codeblueprint.co.uk>,
	"Michael Chang" <MChang@suse.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Jim Fehlig" <jfehlig@suse.com>,
	"Jan Beulich" <JBeulich@suse.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"Daniel Kiper" <daniel.kiper@oracle.com>,
	"X86 ML" <x86@kernel.org>, "Vojtěch Pavlík" <vojtech@suse.cz>,
	"Gary Lin" <GLin@suse.com>,
	xen-devel <xen-devel@lists.xenproject.org>,
	"Jeffrey Cheung" <JCheung@suse.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	joeyli <jlee@suse.com>, "Borislav Petkov" <bp@alien8.de>,
	"Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
	"Charles Arndol" <carnold@suse.com>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	"Andy Lutomirski" <luto@amacapital.net>,
	"David Vrabel" <david.vrabel@citrix.com>,
	"Linus Torvalds" <torvalds@linux-foundation.org>,
	"Roger Pau Monné" <roger.pau@citrix.com>,
	"Josh Triplett" <josh@joshtriplett.org>,
	"Kees Cook" <keescook@chromium.org>,
	"Vitaly Kuznetsov" <vkuznets@redhat.com>
Subject: Re: [Xen-devel] HVMLite / PVHv2 - using x86 EFI boot entry
Date: Fri, 15 Apr 2016 11:44:19 -0700 (PDT)	[thread overview]
Message-ID: <alpine.DEB.2.10.1604151139120.3433@sstabellini-ThinkPad-X260> (raw)
In-Reply-To: <CAB=NE6UDuLOnW8xfTcgCGSbJ1aS4TkkokcGdeJGHMBps0T9=Sg@mail.gmail.com>

On Fri, 15 Apr 2016, Luis R. Rodriguez wrote:
> On Fri, Apr 15, 2016 at 3:06 AM, Julien Grall <julien.grall@arm.com> wrote:
> > On 14/04/16 21:56, Luis R. Rodriguez wrote:
> >> On Thu, Apr 14, 2016 at 03:56:53PM -0400, Konrad Rzeszutek Wilk wrote:
> >>> But to make that work you have to emulate EFI firmware in the
> >>> hypervisor. Is that work you are signing up for?
> >>
> >> I'll do what is needed, as I have done before. If EFI is on the long
> >> term roadmap for ARM perhaps there are a few birds to knock with one
> >> stone here. If there is also interest to support other OSes through
> >> EFI standard means this also should help make that easier.
> >
> > We already have a working solution for EFI on ARM which does not require to
> > emulate the firmware in the hypervisor.
> 
> I get that.
> 
> > On ARM, the EFI stub is communicating with the kernel using device-tree [1].
> > Once the EFI stub has ended, the native path (i.e non-UEFI) will be executed
> > normally and it won't be possible to use BootServices anymore.
> >
> > For the guest, we provide a full support of EFI using OVMF.
> 
> I get that as well, is this the long term solution ?

Yes, it is for Xen on ARM.


> That still requires OVMF, will relying on OVMF always be what is used
> on Xen ARM ?

Not always, the native boot path is still supported. It is possible to
boot a VM using "kernel=/path/to/linux" in your VM config file and that
is not going to boot via EFI but via the native boot path.

To summarize, on ARM:

# DomUs options:
1) xl create "kernel=/path/to/ovfm.bin" -> OVMF -> EFI stub -> Linux (regular entry point)
2) xl create "kernel=/path/to/Linux" -> Linux (regular entry point)

# Dom0 options:
1) native UEFI firmare -> Xen (ExitBootServices) -> Linux (regular entry point)
2) uBoot -> Xen -> Linux (regular entry point)


> Was it too much of a burden to require OVMF?

No, it wasn't. Especially because Anthony had already introduced Xen
support in it.


> Is the upstream OVMF code pulled by Xen at build time on ARM, or just
> wget a binary ?

At the moment the build is not integrated, so you need to go and build
it yourself or use Raisin to do it.


> > For DOM0, Xen will craft the UEFI system table and the UEFI memory
> > map. The locations of those tables will be passed to DOM0 using a
> > tiny device-tree [1] and the kernel will boot using the native path.
> > The runtime services for DOM0 will be provided via hypercall.
> 
> Thanks this helps!
> 
> > The DOM0 approach has been discussed for a long time (see [3]) and I believe
> > this is better than emulating UEFI firmware in Xen. We want to keep Xen on
> > ARM tiny. Adding any sort of emulation will increase the attack surface and
> > require more maintenance from our side.
> 
> OK thanks, would re-using OVMF (note, DT perhaps may not be ideal for
> x86 for the rest though) be a reasonable solution on x86 as an option
> then?

Reusing OVMF for HVMLite DomUs should be easy and something to look at
in the future. Reusing OVMF for HVMLite Dom0 is another story. I think
is a bad idea.

If we wanted to do something like we did on ARM, we need to understand
how the Linux internal API on x86 between the EFI stub and the regular
entry point look like. Is there even one? Could we elevate that to an
external interface and use it to boot Linux from Xen? If so, that would
be an option.

  parent reply	other threads:[~2016-04-15 18:44 UTC|newest]

Thread overview: 127+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-06  2:40 HVMLite / PVHv2 - using x86 EFI boot entry Luis R. Rodriguez
2016-04-06  9:40 ` David Vrabel
2016-04-06  9:40 ` David Vrabel
2016-04-08 20:40   ` Luis R. Rodriguez
2016-04-08 20:40   ` Luis R. Rodriguez
2016-04-11  5:12     ` Juergen Gross
2016-04-11  5:12     ` Juergen Gross
2016-04-12 21:02       ` Andy Lutomirski
2016-04-13  9:02         ` Roger Pau Monné
2016-04-13 10:15           ` Matt Fleming
2016-04-13 10:15           ` Matt Fleming
2016-04-13 10:40             ` Matt Fleming
2016-04-13 10:40             ` Matt Fleming
2016-04-13 11:12             ` George Dunlap
2016-04-13 11:12             ` [Xen-devel] " George Dunlap
2016-04-13 11:59             ` Roger Pau Monné
2016-04-15 22:53               ` Matt Fleming
2016-04-15 22:53               ` Matt Fleming
2016-04-13 11:59             ` Roger Pau Monné
2016-04-13  9:02         ` Roger Pau Monné
2016-04-12 21:02       ` Andy Lutomirski
2016-04-13 18:29       ` Luis R. Rodriguez
2016-04-13 18:29       ` Luis R. Rodriguez
2016-04-13 18:56         ` Konrad Rzeszutek Wilk
2016-04-13 20:40           ` Luis R. Rodriguez
2016-04-13 20:40           ` [Xen-devel] " Luis R. Rodriguez
2016-04-13 21:08             ` Konrad Rzeszutek Wilk
2016-04-13 22:23               ` [Xen-devel] " Luis R. Rodriguez
2016-04-14  1:01                 ` Konrad Rzeszutek Wilk
2016-04-14 18:40                   ` Luis R. Rodriguez
2016-04-14 18:40                   ` [Xen-devel] " Luis R. Rodriguez
2016-04-14 19:56                     ` Konrad Rzeszutek Wilk
2016-04-14 19:56                       ` Konrad Rzeszutek Wilk
2016-04-14 20:56                       ` [Xen-devel] " Luis R. Rodriguez
2016-04-15  2:02                         ` Konrad Rzeszutek Wilk
2016-04-15  2:02                         ` [Xen-devel] " Konrad Rzeszutek Wilk
2016-04-15 17:08                           ` Luis R. Rodriguez
2016-04-15 17:08                           ` [Xen-devel] " Luis R. Rodriguez
2016-04-15 10:06                         ` Julien Grall
2016-04-15 10:06                         ` [Xen-devel] " Julien Grall
2016-04-15 14:55                           ` Luis R. Rodriguez
2016-04-15 18:44                             ` Stefano Stabellini
2016-04-15 18:44                             ` Stefano Stabellini [this message]
2016-04-15 14:55                           ` Luis R. Rodriguez
2016-04-14 20:56                       ` Luis R. Rodriguez
2016-04-14  1:01                 ` Konrad Rzeszutek Wilk
2016-04-13 22:23               ` Luis R. Rodriguez
2016-04-06 11:07 ` [Xen-devel] " George Dunlap
2016-04-06 15:02   ` Matt Fleming
2016-04-06 16:05     ` Konrad Rzeszutek Wilk
2016-04-06 16:23       ` Konrad Rzeszutek Wilk
2016-04-08 21:53         ` [Xen-devel] " Luis R. Rodriguez
2016-04-08 21:53         ` Luis R. Rodriguez
2016-04-13 10:03     ` Roger Pau Monné
2016-04-13 10:03     ` [Xen-devel] " Roger Pau Monné
2016-04-13 10:21       ` Matt Fleming
2016-04-13 10:21       ` Matt Fleming
2016-04-06 15:02   ` Matt Fleming
2016-04-07 18:51   ` [Xen-devel] " Luis R. Rodriguez
2016-04-08 14:16     ` George Dunlap
2016-04-08 21:58       ` Luis R. Rodriguez
2016-04-12 22:12         ` Luis R. Rodriguez
2016-04-13 10:05           ` George Dunlap
2016-04-13 18:54             ` Luis R. Rodriguez
2016-04-14  9:42               ` George Dunlap
2016-04-14 19:59                 ` Luis R. Rodriguez
2016-04-14 19:59                 ` [Xen-devel] " Luis R. Rodriguez
2016-04-14  9:42               ` George Dunlap
2016-04-13 18:54             ` Luis R. Rodriguez
2016-04-13 10:05           ` George Dunlap
2016-04-13 10:25           ` Roger Pau Monné
2016-04-13 10:25           ` [Xen-devel] " Roger Pau Monné
2016-04-13 19:10             ` Luis R. Rodriguez
2016-04-13 19:10             ` Luis R. Rodriguez
2016-04-12 22:12         ` Luis R. Rodriguez
2016-04-13  9:54         ` [Xen-devel] " Roger Pau Monné
2016-04-13 18:50           ` Luis R. Rodriguez
2016-04-13 18:50           ` [Xen-devel] " Luis R. Rodriguez
2016-04-13 19:02             ` Konrad Rzeszutek Wilk
2016-04-13 19:14               ` [Xen-devel] " Luis R. Rodriguez
2016-04-13 19:22                 ` Konrad Rzeszutek Wilk
2016-04-13 20:01                   ` Luis R. Rodriguez
2016-04-13 20:01                   ` [Xen-devel] " Luis R. Rodriguez
2016-04-13 20:11                     ` Konrad Rzeszutek Wilk
2016-04-13 20:35                       ` [Xen-devel] " Luis R. Rodriguez
2016-04-13 20:48                         ` Konrad Rzeszutek Wilk
2016-04-13 20:35                       ` Luis R. Rodriguez
2016-04-14 10:13                 ` George Dunlap
2016-04-14 10:13                 ` [Xen-devel] " George Dunlap
2016-04-13 19:14               ` Luis R. Rodriguez
2016-04-13  9:54         ` Roger Pau Monné
2016-04-08 21:58       ` Luis R. Rodriguez
2016-04-08 14:16     ` George Dunlap
2016-04-13 15:44     ` [Xen-devel] " George Dunlap
2016-04-13 19:52       ` Luis R. Rodriguez
2016-04-13 19:52       ` [Xen-devel] " Luis R. Rodriguez
2016-04-14  9:53         ` George Dunlap
2016-04-14  9:53         ` [Xen-devel] " George Dunlap
2016-04-14 19:44           ` Luis R. Rodriguez
2016-04-14 20:38             ` Konrad Rzeszutek Wilk
2016-04-14 21:12               ` Luis R. Rodriguez
2016-04-14 21:12               ` [Xen-devel] " Luis R. Rodriguez
2016-04-15  2:14                 ` Konrad Rzeszutek Wilk
2016-04-15  2:14                   ` Konrad Rzeszutek Wilk
2016-04-14 20:38             ` Konrad Rzeszutek Wilk
2016-04-15  5:50             ` [Xen-devel] " Juergen Gross
2016-04-15 15:24               ` Luis R. Rodriguez
2016-04-15 15:24               ` [Xen-devel] " Luis R. Rodriguez
2016-04-15  5:50             ` Juergen Gross
2016-04-15  9:59             ` George Dunlap
2016-04-15  9:59             ` [Xen-devel] " George Dunlap
2016-04-15 15:30               ` Luis R. Rodriguez
2016-04-15 15:30               ` [Xen-devel] " Luis R. Rodriguez
2016-04-15 16:03                 ` George Dunlap
2016-04-15 16:03                 ` [Xen-devel] " George Dunlap
2016-04-15 17:17                   ` Luis R. Rodriguez
2016-04-15 17:17                   ` [Xen-devel] " Luis R. Rodriguez
2016-04-14 19:44           ` Luis R. Rodriguez
2016-04-13 15:44     ` George Dunlap
2016-04-07 18:51   ` Luis R. Rodriguez
2016-04-06 11:07 ` George Dunlap
2016-04-06 11:11 ` Daniel Kiper
2016-04-07 19:12   ` Luis R. Rodriguez
2016-04-07 19:12   ` Luis R. Rodriguez
2016-04-09 17:02   ` Luis R. Rodriguez
2016-04-09 17:02   ` Luis R. Rodriguez
2016-04-06 11:11 ` Daniel Kiper

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=alpine.DEB.2.10.1604151139120.3433@sstabellini-ThinkPad-X260 \
    --to=sstabellini@kernel.org \
    --cc=GLin@suse.com \
    --cc=JBeulich@suse.com \
    --cc=JCheung@suse.com \
    --cc=MChang@suse.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=bp@alien8.de \
    --cc=carnold@suse.com \
    --cc=daniel.kiper@oracle.com \
    --cc=david.vrabel@citrix.com \
    --cc=hpa@zytor.com \
    --cc=jfehlig@suse.com \
    --cc=jgross@suse.com \
    --cc=jlee@suse.com \
    --cc=josh@joshtriplett.org \
    --cc=julien.grall@arm.com \
    --cc=keescook@chromium.org \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=matt@codeblueprint.co.uk \
    --cc=mcgrof@kernel.org \
    --cc=roger.pau@citrix.com \
    --cc=torvalds@linux-foundation.org \
    --cc=vkuznets@redhat.com \
    --cc=vojtech@suse.cz \
    --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.