public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC] ARM VM System Sepcification
Date: Thu, 27 Feb 2014 15:00:44 +0100	[thread overview]
Message-ID: <11174980.YJ21cfsHoG@wuerfel> (raw)
In-Reply-To: <alpine.DEB.2.02.1402271229370.31489@kaball.uk.xensource.com>

On Thursday 27 February 2014 12:31:55 Stefano Stabellini wrote:
> On Wed, 26 Feb 2014, Leif Lindholm wrote:
> > > >   no FDT.  In this case, the VM implementation must provide ACPI, and
> > > >   the OS must be able to locate the ACPI root pointer through the UEFI
> > > >   system table.
> > > > 
> > > > For more information about the arm and arm64 boot conventions, see
> > > > Documentation/arm/Booting and Documentation/arm64/booting.txt in the
> > > > Linux kernel source tree.
> > > > 
> > > > For more information about UEFI and ACPI booting, see [4] and [5].
> > > 
> > > What's the point of having ACPI in a virtual machine? You wouldn't
> > > need to abstract any of the hardware in AML since you already know
> > > what the virtual hardware is, so I can't see how this would help
> > > anyone.
> > 
> > The point is that if we need to share any real hw then we need to use
> > whatever the host has.

I would be more comfortable defining in the spec that you cannot share
hardware at all. Obviously that doesn't stop anyone from actually
sharing hardware with the guest, but at that point it would become
noncompliant with this spec, with the consequence that you couldn't
expect a compliant guest image to run on that hardware, but that is
exactly something we can't guarantee anyway because we don't know
what drivers might be needed.

Also, there is no way to generally do this with either FDT or ACPI:
In the former case, the hypervisor needs to modify any properties
that point to other device nodes so that they point to nodes visible
to the guest. That may be possible for simple things like IRQs
and reg properties, but as soon as you get into stuff like dmaengine,
pinctrl or PHY references, you just can't solve it in a generic way.

For ACPI it's probably worse: any AML methods that the host has
are unlikely to work in the guest, and it's impossible to translate
them at all.

Obviously things are different for Xen Dom0 where we share *all* devices
between host and guest, and we just use the host firmware interfaces.
That case again cannot be covered by the generic VM system specification.

> I dislike ACPI as much as the next guy, but unfortunately if the host
> only supports ACPI, the Linux driver for a particular device only works
> together with ACPI, and you want to assign that device to a VM, then we
> might be forced to use ACPI to describe it.

Can anyone think of an example where this would actually work?

The only case I can see where it's possible to share a device with
a guest without the hypervisor building up the description is for
PCI functions that are passed through with an IOMMU. Those won't
need ACPI or DT support however.

	Arnd

  reply	other threads:[~2014-02-27 14:00 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-26 18:34 [RFC] ARM VM System Sepcification Christoffer Dall
     [not found] ` < CACxGe6tjuytsYAn6Hadf0AK+REzHgRydgbHPafL8+Sdtd_tMUA@mail.gmail.com>
2014-02-26 19:27 ` Christopher Covington
2014-02-26 19:51   ` Christoffer Dall
2014-02-27 13:12     ` Christopher Covington
2014-02-27 16:02       ` Christoffer Dall
2014-03-01 15:41       ` Grant Likely
2014-02-26 19:55 ` Arnd Bergmann
2014-02-26 20:05   ` Christoffer Dall
2014-02-26 20:22     ` Arnd Bergmann
     [not found]       ` < CABGGisxHOVqLcG7hVAuAzdeic41KWSLLBSjQLSJQcjTXLhNCow@mail.gmail.com>
2014-02-26 21:56       ` Rob Herring
2014-02-26 22:21         ` Christoffer Dall
2014-02-27  7:30           ` Arnd Bergmann
2014-02-27 10:05             ` Paolo Bonzini
2014-03-01 19:12           ` Grant Likely
2014-02-27  9:35     ` Catalin Marinas
2014-02-26 20:19   ` Paolo Bonzini
2014-02-26 20:20     ` Peter Maydell
2014-02-26 21:48   ` Leif Lindholm
2014-02-26 22:25     ` Christoffer Dall
2014-03-01 19:20       ` Grant Likely
2014-02-27 12:31     ` Stefano Stabellini
2014-02-27 14:00       ` Arnd Bergmann [this message]
2014-02-27 14:24         ` Alexander Graf
2014-02-27 19:56           ` Arnd Bergmann
2014-02-28  0:05             ` Alexander Graf
2014-02-28 10:01               ` Arnd Bergmann
2014-02-28 14:44               ` Stefano Stabellini
2014-03-01 19:25         ` Grant Likely
2014-02-26 22:49   ` Rob Herring
2014-02-26 22:54     ` Peter Maydell
2014-02-26 23:08       ` Rob Herring
2014-02-26 23:14         ` Peter Maydell
2014-02-27  4:06           ` Nicolas Pitre
2014-02-27 11:36         ` Robie Basak
2014-02-26 23:13     ` Christopher Covington
2014-02-26 21:05 ` Michael Hudson-Doyle
2014-02-26 21:08   ` Christoffer Dall
     [not found] ` <CACxGe6tjuytsYAn6Hadf0AK+REzHgRydgbHPafL8+Sdtd_tMUA@mail.gmail.com>
2014-02-26 22:47   ` Christoffer Dall
2014-02-27 12:27   ` Stefano Stabellini
2014-03-01 19:54     ` Grant Likely
2014-03-02  9:29       ` Peter Maydell
2014-02-27 12:55   ` Peter Maydell
2014-02-27  0:41 ` Blibbet
     [not found] ` <20140226134251.0436294e@anubis.ausil.us>
     [not found]   ` <CAMJs5B9bCs8Oz2Zg4UK--A3H4AaZRPMwy7SpxYom-1--_=qhBQ@mail.gmail.com>
     [not found]     ` <20140226151536.58154704@anubis.ausil.us>
2014-02-27 17:34       ` Grant Likely
2014-03-01 15:27 ` Grant Likely
2014-03-03  1:13   ` Christoffer Dall
2014-03-06  8:52   ` Robie Basak
2014-03-06  9:46     ` Paolo Bonzini
2014-03-06 11:44       ` Laszlo Ersek
2014-03-06 12:04         ` Robie Basak
2014-03-06 12:10           ` Paolo Bonzini
2014-03-07 12:24           ` Grant Likely
     [not found]             ` < 20140322010206.GF25519@cbox>
2014-03-22  2:29             ` Christoffer Dall
2014-03-22  8:08               ` Paolo Bonzini
2014-03-23  3:19                 ` Christoffer Dall
2014-03-23  3:29                   ` Christoffer Dall
2014-03-24  9:57                     ` Robie Basak
2014-03-24 10:46                       ` Paolo Bonzini
2014-03-22 12:23               ` Grant Likely
2014-03-22 19:57                 ` Paolo Bonzini
2014-03-22 22:35                   ` Grant Likely
2014-03-22 23:38                   ` Michael Casadevall
2014-03-23  0:33                     ` Laszlo Ersek
2014-03-23  3:23                 ` Christoffer Dall
2014-03-24  9:03                 ` Ian Campbell
2014-03-24 10:41                   ` Paolo Bonzini
2014-03-24 10:47                     ` Ian Campbell
2014-03-24 12:13                   ` Grant Likely
2014-03-24 12:16                     ` Ian Campbell
2014-03-07 12:19       ` Grant Likely
2014-03-08 11:41       ` Michael Casadevall
2014-03-08 20:41         ` Laszlo Ersek
2014-03-07 12:09     ` Grant Likely

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=11174980.YJ21cfsHoG@wuerfel \
    --to=arnd@arndb.de \
    --cc=linux-arm-kernel@lists.infradead.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