[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] PCI Pass-through in Xen ARM: Draft 4



On Fri, 2015-08-14 at 08:34 -0600, Jan Beulich wrote:
> > 
> > > > On 14.08.15 at 16:03, <stefano.stabellini@xxxxxxxxxxxxx> wrote:
> > On Fri, 14 Aug 2015, Jan Beulich wrote:
> > > > > > On 14.08.15 at 15:21, <stefano.stabellini@xxxxxxxxxxxxx> wrote:
> > > > On Fri, 14 Aug 2015, Jan Beulich wrote:
> > > > > it's even less clear how you'd expect to suppress this in other 
> > > > > guest
> > > > > OSes (Windows - afaik - being able to run on ARM certainly makes 
> > > > > it
> > > > > a candidate guest, even if maybe this doesn't work today), namely
> > > > > such not having any pcifront. And I hope this design discussion 
> > > > > isn't
> > > > > limiting itself to Linux guests.
> > > > 
> > > > We'll write down in the ABI documentation that BARs reassignments 
> > > > are
> > > > not supported.
> > > 
> > > I.e. guests doing so Will Not Work (TM), with users (usually not 
> > > reading
> > > ABI docs) learning it the hard way. Not nice, but a way to handle it.
> > 
> > The target of the ABI docs is not users, but kernel developers, who
> > should most definitely read them and fix their kernels.
> 
> ??? (We're talking of unmodified, closed source OSes here.)

On x86 such unmodified OSes would not use pciif.h/pcifront/back, instead
they would be an HVM guest and get an HVM PCI bus emulated by the device
model, which would (I suppose) support remapping BARs etc, since as you say
unmodified OSes may require that.

AFAIK pcifront/back doesn't work for x86/HVM guests today, or at least not
in general for "unmodified, closed source OSes".

AIUI it is the case today (and has always been the case) that x86/PV guests
using pcifront/pciback cannot rewrite BARS, except to either all 1's or
their original value (this is needed to probe the size or something AIUI).
This is my reading of linux/drivers/xen/xen
-pciback/conf_space_header.c:bar_write at least, which says:
    /* For the BARs, only allow writes which write ~0 or
     * the correct resource information
     * (Needed for when the driver probes the resource usage)
     */

ARM here is following the x86/PV model for PCI, not the x86/HVM emulated
one.

Supporting writing of BARs for ARM guests (as for x86/PV guests, I think)
would be hard to achieve. I would justify doing this on ARM on the basis
that x86/PV has been doing this for a decade and barely anyone has ever
noticed.

Ian.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.