From: Andrew Cooper <andrew.cooper3@citrix.com>
To: "Tim Deegan" <tim@xen.org>, "Roger Pau Monné" <roger.pau@citrix.com>
Cc: Wei Liu <wei.liu2@citrix.com>,
Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
Paul Durrant <paul.durrant@citrix.com>,
David Vrabel <david.vrabel@citrix.com>,
Jan Beulich <JBeulich@suse.com>,
samuel.thibault@ens-lyon.org,
xen-devel <xen-devel@lists.xenproject.org>,
Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: Re: HVMlite ABI specification DRAFT A
Date: Fri, 5 Feb 2016 17:14:48 +0000 [thread overview]
Message-ID: <56B4D888.3020107@citrix.com> (raw)
In-Reply-To: <20160205160101.GE94831@deinos.phlegethon.org>
On 05/02/16 16:01, Tim Deegan wrote:
> At 18:48 +0100 on 04 Feb (1454611694), Roger Pau Monné wrote:
>> Hello,
>>
>> I've Cced a bunch of people who have expressed interest in the HVMlite
>> design/implementation, both from a Xen or OS point of view. If you
>> would like to be removed, please say so and I will remove you in
>> further iterations. The same applies if you want to be added to the Cc.
>>
>> This is an initial draft on the HVMlite design and implementation. I've
>> mixed certain aspects of the design with the implementation, because I
>> think we are quite tied by the implementation possibilities in certain
>> aspects, so not speaking about it would make the document incomplete. I
>> might be wrong on that, so feel free to comment otherwise if you would
>> prefer a different approach. At least this should get the conversation
>> started into a couple of pending items regarding HVMlite. I don't want
>> to spoil the fun, but IMHO they are:
>>
>> - Local APIC: should we _always_ provide a local APIC to HVMlite
>> guests?
>> - HVMlite hardware domain: can we get rid of the PHYSDEV ops and PIRQ
>> event channels?
>> - HVMlite PCI-passthrough: can we get rid of pciback/pcifront?
> FWIW, I think we should err on the side of _not_ emulating hardware or
> providing ACPI; if the hypervisor interfaces are insufficient/unpleasant
> we should make them better.
>
> I understand that PCI passthrough is difficult because the hardware
> design is so awkward to retrofit isolation onto. But I'm very
> uncomfortable with the idea of faking out things like PCI root
> complexes inside the hypervisor -- as a way of getting rid of qemu
> it's laughable.
Most certainly not.
90% of the necessary PCI infrastructure is already in the hypervisor,
and actively used for tracking interrupt mask bits. Some of this was
even introduced in XSAs, and isn't going away.
As far as I am aware, the remaining 10% is a bus 0, and PCI-complient
bus handling (a few extra registers in legacy PCI configuration space),
to be able to steer all other PCI related accesses to the appropriate
ioreq server, and splitting of the two GPE blocks.
Yes, this does involve adding a little extra emulation to Xen, but the
benefits are a substantially cleaner architecture for device models,
which doesn't require them to self-coordinate about their layout, or
have to talk to Qemu directly to negotiate hotplug notifications.
> I'd be much happier saying that PCI passthrough
> requires PV or legacy HVM until a better plan can be found
> (e.g. depriv helpers).
The current pci-front/back and Qemu-based methods have substantial
architectural deficiencies, and are incredibly fragile to change. When
was the last XSA to PCI Passthrough which didn't end up requiring
further bugfixes to undo the collateral damage?
It is my hope that we can correct the architecture as part of developing
HVMLite (at which point HVM will immediately benefit), and vastly simply
the device model interfaces. Of course, if during the course of
development this proves not to be the case, we will have to sit down and
replan.
>From where I am sitting, most of the risks are already present, and the
potential benefits vastly outweigh the downsides.
~Andrew
next prev parent reply other threads:[~2016-02-05 17:14 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-04 17:48 HVMlite ABI specification DRAFT A Roger Pau Monné
2016-02-04 18:22 ` Andrew Cooper
2016-02-04 19:33 ` Roger Pau Monné
2016-02-04 20:24 ` Boris Ostrovsky
2016-02-05 14:44 ` Ian Campbell
2016-02-05 14:46 ` Roger Pau Monné
2016-02-05 9:12 ` Jan Beulich
2016-02-05 9:50 ` Roger Pau Monné
2016-02-05 10:40 ` Jan Beulich
2016-02-05 11:04 ` Andrew Cooper
2016-02-05 11:07 ` Jan Beulich
2016-02-05 11:30 ` Roger Pau Monné
2016-02-05 11:45 ` Jan Beulich
2016-02-05 11:50 ` Roger Pau Monné
2016-02-05 13:22 ` Jan Beulich
2016-02-05 14:27 ` Roger Pau Monné
2016-02-05 14:31 ` Jan Beulich
2016-02-05 15:00 ` Roger Pau Monné
2016-02-05 15:29 ` Jan Beulich
2016-02-05 15:35 ` Roger Pau Monné
2016-02-04 18:38 ` Boris Ostrovsky
2016-02-04 18:51 ` Samuel Thibault
2016-02-04 19:21 ` Roger Pau Monné
2016-02-04 20:17 ` Boris Ostrovsky
2016-02-04 20:29 ` Konrad Rzeszutek Wilk
2016-02-04 20:37 ` Andrew Cooper
2016-02-05 8:23 ` Roger Pau Monné
2016-02-04 22:23 ` Samuel Thibault
2016-02-04 19:09 ` Samuel Thibault
2016-02-04 19:18 ` Boris Ostrovsky
2016-02-04 22:21 ` Samuel Thibault
2016-02-04 22:25 ` Andrew Cooper
2016-02-04 22:41 ` Samuel Thibault
2016-02-05 10:20 ` Ian Campbell
2016-02-05 16:01 ` Tim Deegan
2016-02-05 16:13 ` Roger Pau Monné
2016-02-05 17:14 ` Andrew Cooper [this message]
2016-02-05 18:05 ` Tim Deegan
2016-02-05 18:44 ` Andrew Cooper
2016-02-08 12:10 ` Stefano Stabellini
2016-02-08 13:21 ` David Vrabel
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=56B4D888.3020107@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=JBeulich@suse.com \
--cc=boris.ostrovsky@oracle.com \
--cc=david.vrabel@citrix.com \
--cc=paul.durrant@citrix.com \
--cc=roger.pau@citrix.com \
--cc=samuel.thibault@ens-lyon.org \
--cc=stefano.stabellini@eu.citrix.com \
--cc=tim@xen.org \
--cc=wei.liu2@citrix.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).