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

Re: [Xen-devel] [rfc 00/18] ioemu: use devfn instead of slots as the unit for passthrough



On Tue, Mar 03, 2009 at 02:57:15PM +0900, Yuji Shimada wrote:
> On Mon, 02 Mar 2009 11:33:41 +0000
> Keir Fraser <keir.fraser@xxxxxxxxxxxxx> wrote:
> 
> > On 02/03/2009 11:25, "Simon Horman" <horms@xxxxxxxxxxxx> wrote:
> > 
> > >> I mean that xend can pick a virtual devfn for the device that it knows 
> > >> has a
> > >> non-conflicting GSI. This avoids any need for dynamic mapping between 
> > >> devfn
> > >> and GSI (which would be more of a pain in the neck -- for example, your
> > >> patch doesn't work because certain parts of BIOS info tables need to be
> > >> dynamically generated, as currently they hardcode the devfn-GSI
> > >> relationship).
> > > 
> > > Thanks for the clarification. I suspect that scheme could easily run into
> > > allocation problems when multi-function devices are passed-through as
> > > multi-function devices.  Especially in the case of hot-plug. Buy which I
> > > mean, it might be hard to find a device with the GSI for INTA + one or 
> > > more
> > > of INTB, C and D are free. But I'll take a look into it and see how it
> > > goes.
> > 
> > Well, it depends how many devices you want to pass through. I bet you're
> > good up to at least half dozen, and likely more.
> > 
> > > In any case, could you be more specific about which areas my approach 
> > > break?
> > 
> > Mainly, virtual firmware and (possibly) save/restore. The latter depends on
> > whether a guest with dynamically assigned devfn<->GSI relationship is ever
> > allowed to be saved/restored.
> > 
> > Your approach is also no good for PCI hotplug, since I'm pretty sure you
> > cannot update GSI bindings after the guest has booted. Unless there's some
> > ACPI magic that could be employed in this case.
> 
> If you want to assign many devices to guest, it is one of approaches
> to expand GSIs statically.  You can support hot-plug easily.
> 
>     dev 0  INTA -> GSI  16
>     dev 0  INTB -> GSI  17
>     dev 0  INTC -> GSI  18
>     dev 0  INTD -> GSI  19
>     dev 1  INTA -> GSI  20
>     dev 1  INTB -> GSI  21
>     dev 1  INTC -> GSI  22
>     dev 1  INTD -> GSI  23
>     dev 2  INTA -> GSI  24
>     dev 2  INTB -> GSI  25
>     dev 2  INTC -> GSI  26
>     dev 2  INTD -> GSI  27
>     ...
>     dev 31 INTA -> GSI 140
>     dev 31 INTB -> GSI 141
>     dev 31 INTC -> GSI 142
>     dev 31 INTD -> GSI 143
> 
> Please note that _PRT method in ACPI AML should reflect GSIs. If you expand
> GSIs, it will be necessary to change the _PRT method. Please see
> tools/firmware/hvmloader/acpi/dsdt.asl.

Could someone explain why the current code uses 32 GSIs rather than using 128?

-- 
Simon Horman
  VA Linux Systems Japan K.K., Sydney, Australia Satellite Office
  H: www.vergenet.net/~horms/             W: www.valinux.co.jp/en


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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