All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Rutland <mark.rutland@arm.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"matt.fleming@intel.com" <matt.fleming@intel.com>,
	"Ian.Campbell@citrix.com" <Ian.Campbell@citrix.com>,
	"ard.biesheuvel@linaro.org" <ard.biesheuvel@linaro.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"daniel.kiper@oracle.com" <daniel.kiper@oracle.com>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
	"peter.huangpeng@huawei.com" <peter.huangpeng@huawei.com>,
	"leif.lindholm@linaro.org" <leif.lindholm@linaro.org>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
	"julien.grall@citrix.com" <julien.grall@citrix.com>,
	"freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org>,
	"linux-efi@vger.kernel.org" <linux-efi@vger.kernel.org>,
	"shannon.zhao@linaro.org" <shannon.zhao@linaro.org>,
	Shannon Zhao <zhaoshenglong@huawei.com>,
	"christoffer.dall@linaro.org" <christoffer.dall@linaro.org>
Subject: Re: [PATCH] efi/libstub/fdt: Standardize the names of EFI stub parameters
Date: Thu, 10 Sep 2015 15:53:31 +0100	[thread overview]
Message-ID: <20150910145331.GJ29293@leverpostej> (raw)
In-Reply-To: <55F199DD02000078000A1B1E@prv-mh.provo.novell.com>

On Thu, Sep 10, 2015 at 01:55:25PM +0100, Jan Beulich wrote:
> >>> On 10.09.15 at 13:37, <stefano.stabellini@eu.citrix.com> wrote:
> > On Thu, 10 Sep 2015, Mark Rutland wrote:
> >> Why can't Xen give a virtual EFI interface to Dom0 / guests? e.g.
> >> create pages of RuntimeServicesCode that are trivial assembly shims
> >> doing hypercalls, and plumb these into the virtual EFI memory map and
> >> tables?
> >> 
> >> That would keep things sane for any guest, allow for easy addition of
> >> EFI features, and you could even enter the usual EFI entry point,
> >> simulate ExitBootServices(), SetVirtualAddressMap(), and allow the guest
> >> to make things sane for itself...
> > 
> > That's the way it was done on x86 and now we have common code both in
> > Linux (drivers/xen/efi.c) and Xen (xen/common/efi) which implement this
> > scheme.  Switching to a different solution for ARM, would mean diverging
> > with x86, which is not nice, or reimplementing the x86 solution too,
> > which is expensive.
> > 
> > BTW I think that the idea you proposed was actually considered at the
> > time and deemed hard to implement, if I recall correctly.
> 
> Considering that the EFI support is just for Dom0, and Dom0 (at
> the time) had to be PV anyway, it was the more natural solution to
> expose the interface via hypercalls, the more that this allows better
> control over what is and primarily what is not being exposed to
> Dom0. With the wrapper approach we'd be back to the same
> problem (discussed elsewhere) of which EFI version to surface: The
> host one would impose potentially missing extensions, while the
> most recent hypervisor known one might imply hiding valuable
> information from Dom0. Plus there are incompatible changes like
> the altered meaning of EFI_MEMORY_WP in 2.5.

I'm not sure I follow how hypercalls solve any impedance mismatch here;
you're still expecting Dom0 to call up to Xen in order to perform calls,
and all I suggested was a different location for those hypercalls.

If Xen is happy to make such calls blindly, why does it matter if the
hypercall was in the kernel binary or an external shim?

Incompatible changes are a spec problem regardless of how this is
handled.

Thanks,
Mark.

WARNING: multiple messages have this Message-ID (diff)
From: Mark Rutland <mark.rutland@arm.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: "devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"matt.fleming@intel.com" <matt.fleming@intel.com>,
	"Ian.Campbell@citrix.com" <Ian.Campbell@citrix.com>,
	"ard.biesheuvel@linaro.org" <ard.biesheuvel@linaro.org>,
	"christoffer.dall@linaro.org" <christoffer.dall@linaro.org>,
	"daniel.kiper@oracle.com" <daniel.kiper@oracle.com>,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"leif.lindholm@linaro.org" <leif.lindholm@linaro.org>,
	"peter.huangpeng@huawei.com" <peter.huangpeng@huawei.com>,
	"julien.grall@citrix.com" <julien.grall@citrix.com>,
	"freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org>,
	"linux-efi@vger.kernel.org" <linux-efi@vger.kernel.org>,
	"shannon.zhao@linaro.org" <shannon.zhao@linaro.org>,
	Shannon Zhao <zhaoshenglong@huawei.com>
Subject: Re: [PATCH] efi/libstub/fdt: Standardize the names of EFI stub parameters
Date: Thu, 10 Sep 2015 15:53:31 +0100	[thread overview]
Message-ID: <20150910145331.GJ29293@leverpostej> (raw)
In-Reply-To: <55F199DD02000078000A1B1E@prv-mh.provo.novell.com>

On Thu, Sep 10, 2015 at 01:55:25PM +0100, Jan Beulich wrote:
> >>> On 10.09.15 at 13:37, <stefano.stabellini@eu.citrix.com> wrote:
> > On Thu, 10 Sep 2015, Mark Rutland wrote:
> >> Why can't Xen give a virtual EFI interface to Dom0 / guests? e.g.
> >> create pages of RuntimeServicesCode that are trivial assembly shims
> >> doing hypercalls, and plumb these into the virtual EFI memory map and
> >> tables?
> >> 
> >> That would keep things sane for any guest, allow for easy addition of
> >> EFI features, and you could even enter the usual EFI entry point,
> >> simulate ExitBootServices(), SetVirtualAddressMap(), and allow the guest
> >> to make things sane for itself...
> > 
> > That's the way it was done on x86 and now we have common code both in
> > Linux (drivers/xen/efi.c) and Xen (xen/common/efi) which implement this
> > scheme.  Switching to a different solution for ARM, would mean diverging
> > with x86, which is not nice, or reimplementing the x86 solution too,
> > which is expensive.
> > 
> > BTW I think that the idea you proposed was actually considered at the
> > time and deemed hard to implement, if I recall correctly.
> 
> Considering that the EFI support is just for Dom0, and Dom0 (at
> the time) had to be PV anyway, it was the more natural solution to
> expose the interface via hypercalls, the more that this allows better
> control over what is and primarily what is not being exposed to
> Dom0. With the wrapper approach we'd be back to the same
> problem (discussed elsewhere) of which EFI version to surface: The
> host one would impose potentially missing extensions, while the
> most recent hypervisor known one might imply hiding valuable
> information from Dom0. Plus there are incompatible changes like
> the altered meaning of EFI_MEMORY_WP in 2.5.

I'm not sure I follow how hypercalls solve any impedance mismatch here;
you're still expecting Dom0 to call up to Xen in order to perform calls,
and all I suggested was a different location for those hypercalls.

If Xen is happy to make such calls blindly, why does it matter if the
hypercall was in the kernel binary or an external shim?

Incompatible changes are a spec problem regardless of how this is
handled.

Thanks,
Mark.

WARNING: multiple messages have this Message-ID (diff)
From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] efi/libstub/fdt: Standardize the names of EFI stub parameters
Date: Thu, 10 Sep 2015 15:53:31 +0100	[thread overview]
Message-ID: <20150910145331.GJ29293@leverpostej> (raw)
In-Reply-To: <55F199DD02000078000A1B1E@prv-mh.provo.novell.com>

On Thu, Sep 10, 2015 at 01:55:25PM +0100, Jan Beulich wrote:
> >>> On 10.09.15 at 13:37, <stefano.stabellini@eu.citrix.com> wrote:
> > On Thu, 10 Sep 2015, Mark Rutland wrote:
> >> Why can't Xen give a virtual EFI interface to Dom0 / guests? e.g.
> >> create pages of RuntimeServicesCode that are trivial assembly shims
> >> doing hypercalls, and plumb these into the virtual EFI memory map and
> >> tables?
> >> 
> >> That would keep things sane for any guest, allow for easy addition of
> >> EFI features, and you could even enter the usual EFI entry point,
> >> simulate ExitBootServices(), SetVirtualAddressMap(), and allow the guest
> >> to make things sane for itself...
> > 
> > That's the way it was done on x86 and now we have common code both in
> > Linux (drivers/xen/efi.c) and Xen (xen/common/efi) which implement this
> > scheme.  Switching to a different solution for ARM, would mean diverging
> > with x86, which is not nice, or reimplementing the x86 solution too,
> > which is expensive.
> > 
> > BTW I think that the idea you proposed was actually considered at the
> > time and deemed hard to implement, if I recall correctly.
> 
> Considering that the EFI support is just for Dom0, and Dom0 (at
> the time) had to be PV anyway, it was the more natural solution to
> expose the interface via hypercalls, the more that this allows better
> control over what is and primarily what is not being exposed to
> Dom0. With the wrapper approach we'd be back to the same
> problem (discussed elsewhere) of which EFI version to surface: The
> host one would impose potentially missing extensions, while the
> most recent hypervisor known one might imply hiding valuable
> information from Dom0. Plus there are incompatible changes like
> the altered meaning of EFI_MEMORY_WP in 2.5.

I'm not sure I follow how hypercalls solve any impedance mismatch here;
you're still expecting Dom0 to call up to Xen in order to perform calls,
and all I suggested was a different location for those hypercalls.

If Xen is happy to make such calls blindly, why does it matter if the
hypercall was in the kernel binary or an external shim?

Incompatible changes are a spec problem regardless of how this is
handled.

Thanks,
Mark.

  reply	other threads:[~2015-09-10 14:53 UTC|newest]

Thread overview: 182+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-10  8:41 [PATCH] efi/libstub/fdt: Standardize the names of EFI stub parameters Shannon Zhao
2015-09-10  8:41 ` Shannon Zhao
2015-09-10  8:41 ` Shannon Zhao
2015-09-10  9:52 ` Mark Rutland
2015-09-10  9:52 ` Mark Rutland
2015-09-10  9:52   ` Mark Rutland
2015-09-10  9:52   ` Mark Rutland
2015-09-10 10:19   ` Stefano Stabellini
2015-09-10 10:19   ` Stefano Stabellini
2015-09-10 10:19     ` Stefano Stabellini
2015-09-10 10:19     ` Stefano Stabellini
2015-09-10 11:24     ` Mark Rutland
2015-09-10 11:24     ` Mark Rutland
2015-09-10 11:24       ` Mark Rutland
2015-09-10 11:24       ` Mark Rutland
2015-09-10 11:37       ` Stefano Stabellini
2015-09-10 11:37         ` Stefano Stabellini
2015-09-10 11:37         ` Stefano Stabellini
2015-09-10 12:15         ` Mark Rutland
2015-09-10 12:15         ` Mark Rutland
2015-09-10 12:15           ` Mark Rutland
2015-09-10 12:15           ` Mark Rutland
2015-09-10 12:58           ` [Xen-devel] " Ian Campbell
2015-09-10 12:58             ` Ian Campbell
2015-09-10 12:58             ` Ian Campbell
2015-09-10 13:08             ` Jan Beulich
2015-09-10 13:08             ` [Xen-devel] " Jan Beulich
2015-09-10 13:08               ` Jan Beulich
2015-09-10 13:08               ` Jan Beulich
2015-09-10 13:30               ` Ian Campbell
2015-09-10 13:30               ` [Xen-devel] " Ian Campbell
2015-09-10 13:30                 ` Ian Campbell
2015-09-10 13:30                 ` Ian Campbell
2015-09-10 12:58           ` Ian Campbell
2015-09-10 13:52           ` Stefano Stabellini
2015-09-10 13:52             ` Stefano Stabellini
2015-09-10 13:52             ` Stefano Stabellini
2015-09-10 14:13             ` Leif Lindholm
2015-09-10 14:13               ` Leif Lindholm
2015-09-10 14:13               ` Leif Lindholm
2015-09-10 14:13             ` Leif Lindholm
2015-09-10 14:49             ` Mark Rutland
2015-09-10 14:49               ` Mark Rutland
2015-09-10 14:49               ` Mark Rutland
2015-09-10 16:10               ` Stefano Stabellini
2015-09-10 16:10                 ` Stefano Stabellini
2015-09-10 16:10                 ` Stefano Stabellini
2015-09-10 16:23                 ` Mark Rutland
2015-09-10 16:23                   ` Mark Rutland
2015-09-10 16:23                   ` Mark Rutland
2015-09-11 12:46                   ` Daniel Kiper
2015-09-11 12:46                   ` Daniel Kiper
2015-09-11 12:46                     ` Daniel Kiper
2015-09-11 12:46                     ` Daniel Kiper
2015-09-11 13:14                     ` Stefano Stabellini
2015-09-11 13:14                       ` Stefano Stabellini
2015-09-11 13:14                       ` Stefano Stabellini
2015-09-11 13:30                       ` Ard Biesheuvel
2015-09-11 13:30                         ` Ard Biesheuvel
2015-09-11 13:30                         ` Ard Biesheuvel
2015-09-11 15:45                         ` Daniel Kiper
2015-09-11 15:45                         ` Daniel Kiper
2015-09-11 15:45                           ` Daniel Kiper
2015-09-11 15:45                           ` Daniel Kiper
2015-09-14  8:42                           ` Shannon Zhao
2015-09-14  8:42                             ` Shannon Zhao
2015-09-14  8:42                             ` Shannon Zhao
2015-09-14  9:09                             ` Ard Biesheuvel
2015-09-14  9:09                               ` Ard Biesheuvel
2015-09-14  9:09                               ` Ard Biesheuvel
2015-09-14  9:31                               ` Shannon Zhao
2015-09-14  9:31                                 ` Shannon Zhao
2015-09-14  9:31                                 ` Shannon Zhao
2015-09-14  9:36                                 ` Ard Biesheuvel
2015-09-14  9:36                                   ` Ard Biesheuvel
2015-09-14  9:36                                   ` Ard Biesheuvel
2015-09-14 10:39                                   ` Jan Beulich
2015-09-14 10:39                                   ` [Xen-devel] " Jan Beulich
2015-09-14 10:39                                     ` Jan Beulich
2015-09-14 10:39                                     ` Jan Beulich
2015-09-14 11:16                                     ` Ard Biesheuvel
2015-09-14 11:16                                     ` [Xen-devel] " Ard Biesheuvel
2015-09-14 11:16                                       ` Ard Biesheuvel
2015-09-14 11:16                                       ` Ard Biesheuvel
2015-09-14 11:34                                       ` Jan Beulich
2015-09-14 11:34                                       ` [Xen-devel] " Jan Beulich
2015-09-14 11:34                                         ` Jan Beulich
2015-09-14 11:34                                         ` Jan Beulich
2015-09-14  9:36                                 ` Ard Biesheuvel
2015-09-14  9:09                             ` Ard Biesheuvel
2015-09-11 16:33                         ` Mark Rutland
2015-09-11 16:33                         ` Mark Rutland
2015-09-11 16:33                           ` Mark Rutland
2015-09-11 16:33                           ` Mark Rutland
2015-09-11 13:30                       ` Ard Biesheuvel
2015-09-11 13:14                     ` Stefano Stabellini
2015-09-11 16:25                     ` Mark Rutland
2015-09-11 16:25                       ` Mark Rutland
2015-09-11 16:25                       ` Mark Rutland
2015-09-12 11:36                       ` Daniel Kiper
2015-09-12 11:36                         ` Daniel Kiper
2015-09-12 11:36                         ` Daniel Kiper
2015-09-14  9:25                         ` Mark Rutland
2015-09-14  9:25                         ` Mark Rutland
2015-09-14  9:25                           ` Mark Rutland
2015-09-14  9:25                           ` Mark Rutland
2015-09-14  9:43                           ` Ard Biesheuvel
2015-09-14  9:43                             ` Ard Biesheuvel
     [not found]                             ` <CAKv+Gu9ER1cKvPHobq-wo7ggPesJj4OQ7=aTr24GVpubHvVqjQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-09-14  9:57                               ` Ian Campbell
2015-09-14  9:57                                 ` Ian Campbell
2015-09-14 10:02                                 ` Ard Biesheuvel
     [not found]                                 ` <1442224673.3549.131.camel-Sxgqhf6Nn4DQT0dZR+AlfA@public.gmane.org>
2015-09-14 10:02                                   ` Ard Biesheuvel
2015-09-14 10:02                                     ` Ard Biesheuvel
     [not found]                                     ` <CAKv+Gu_Gh649EwdtodLY9Q28JhqYg8o6RShXXH1ZbxsfYRfi2Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-09-14 10:25                                       ` Ian Campbell
2015-09-14 10:25                                         ` Ian Campbell
2015-09-14 10:25                                     ` Ian Campbell
2015-09-14 12:28                               ` Daniel Kiper
2015-09-14 12:28                                 ` Daniel Kiper
2015-09-14 13:09                                 ` Ard Biesheuvel
     [not found]                                 ` <20150914122858.GI4530-fJNZiO034lp9pOct4yEdx/3oZC3j2Omk@public.gmane.org>
2015-09-14 13:09                                   ` Ard Biesheuvel
2015-09-14 13:09                                     ` Ard Biesheuvel
     [not found]                                     ` <CAKv+Gu_z2X=9-qgoKTS7dKLqtSUvysyu9LzZryJqcSR4X8Ss6A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-09-14 13:57                                       ` Daniel Kiper
2015-09-14 13:57                                         ` Daniel Kiper
2015-09-14 13:57                                     ` Daniel Kiper
2015-09-14  9:57                             ` Ian Campbell
2015-09-14 12:28                             ` Daniel Kiper
2015-09-14  9:43                           ` Ard Biesheuvel
2015-09-14  9:47                           ` Stefano Stabellini
2015-09-14  9:47                             ` Stefano Stabellini
2015-09-14  9:47                             ` Stefano Stabellini
2015-09-14  9:47                           ` Stefano Stabellini
2015-09-14 12:19                           ` Daniel Kiper
2015-09-14 12:19                           ` Daniel Kiper
2015-09-14 12:19                             ` Daniel Kiper
2015-09-14 12:19                             ` Daniel Kiper
2015-09-12 11:36                       ` Daniel Kiper
2015-09-11 16:25                     ` Mark Rutland
2015-09-10 16:23                 ` Mark Rutland
2015-09-11 11:00                 ` Ian Campbell
2015-09-11 11:00                   ` Ian Campbell
2015-09-11 11:00                   ` Ian Campbell
2015-09-11 11:00                 ` Ian Campbell
2015-09-10 16:10               ` Stefano Stabellini
2015-09-10 14:49             ` Mark Rutland
2015-09-10 13:52           ` Stefano Stabellini
2015-09-10 12:55         ` Jan Beulich
2015-09-10 12:55         ` Jan Beulich
2015-09-10 12:55           ` Jan Beulich
2015-09-10 12:55           ` Jan Beulich
2015-09-10 14:53           ` Mark Rutland [this message]
2015-09-10 14:53             ` Mark Rutland
2015-09-10 14:53             ` Mark Rutland
2015-09-10 15:06             ` Jan Beulich
2015-09-10 15:06             ` Jan Beulich
2015-09-10 15:06               ` Jan Beulich
2015-09-10 15:06               ` Jan Beulich
2015-09-11 16:36               ` Mark Rutland
2015-09-11 16:36               ` Mark Rutland
2015-09-11 16:36                 ` Mark Rutland
2015-09-11 16:36                 ` Mark Rutland
2015-09-10 11:37       ` Stefano Stabellini
2015-09-10 11:32 ` Andrew Turner
2015-09-10 11:32 ` Andrew Turner
2015-09-10 11:32   ` Andrew Turner
2015-09-10 11:32   ` Andrew Turner
2015-09-10 11:48   ` Julien Grall
2015-09-10 11:48     ` Julien Grall
2015-09-10 11:48     ` Julien Grall
2015-09-10 12:05     ` Roger Pau Monné
2015-09-10 12:05     ` Roger Pau Monné
2015-09-10 12:05       ` Roger Pau Monné
2015-09-10 12:05       ` Roger Pau Monné
2015-09-10 12:53       ` [Xen-devel] " Julien Grall
2015-09-10 12:53         ` Julien Grall
2015-09-10 12:53         ` Julien Grall
2015-09-10 12:53       ` Julien Grall
2015-09-10 11:48   ` Julien Grall
2015-09-17 11:43 ` Shannon Zhao
2015-09-17 11:43   ` Shannon Zhao
2015-09-17 11:43   ` Shannon Zhao
2015-09-17 11:43 ` Shannon Zhao
  -- strict thread matches above, loose matches on Subject: below --
2015-09-10  8:41 Shannon Zhao

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=20150910145331.GJ29293@leverpostej \
    --to=mark.rutland@arm.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=JBeulich@suse.com \
    --cc=ard.biesheuvel@linaro.org \
    --cc=christoffer.dall@linaro.org \
    --cc=daniel.kiper@oracle.com \
    --cc=devicetree@vger.kernel.org \
    --cc=freebsd-arm@freebsd.org \
    --cc=julien.grall@citrix.com \
    --cc=konrad.wilk@oracle.com \
    --cc=leif.lindholm@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matt.fleming@intel.com \
    --cc=peter.huangpeng@huawei.com \
    --cc=shannon.zhao@linaro.org \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=xen-devel@lists.xen.org \
    --cc=zhaoshenglong@huawei.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.