> -----Original Message-----
> From: Gerd Hoffmann [mailto:kra...@redhat.com]
> Sent: Monday, May 19, 2014 2:45 PM
> To: Chen, Tiejun
> Cc: anthony.per...@citrix.com; stefano.stabell...@eu.citrix.com;
> m...@redhat.com; kelly.zyta...@amd.com; peter.mayd...@linaro.org;
> xen-de...@lists.xensource.com; weidong....@intel.com; Kay, Allen M;
> qemu-devel@nongnu.org; jean.guya...@eu.citrix.com;
> anth...@codemonkey.ws; Zhang, Yang Z
> Subject: Re: [Qemu-devel] [v2][PATCH 4/8] xen, gfx passthrough: reserve
> 00:02.0 for INTEL IGD
> 
>   Hi,
> 
> > +    /*
> > +     * Some video bioses and gfx drivers will assume the bdf of IGD is
> 00:02.0.
> > +     * So user need to set it to 00:02.0 in Xen configure file explicitly,
> > +     * otherwise IGD will fail to work.
> > +     */
> > +    pci_reserve_pci_devfn(b, PCI_DEVFN(2, 0));
> 
> That is asking for trouble.  Slot 2 is used by the qemu vga cards by default, 
> and
> for quite a while (before memory api was merged) it even was impossible to
> change it.  libvirt still places the vga card at slot
> 2 for that reason -> boom.  I wouldn't be surprised if you find that 
> assumption
> in other management libs / apps too.
> 
> Why do you need that patch in the first place?  It should be possible to
> configure qemu to not occupy slot 2 if you need it that way.  Just pass '-vga
> none' to qemu.  Which you probably want anyway if you pass-through a vga to
> the guest.  And explicitly configure a slot (via addr=
I think '-vga none' just guarantees the qemu vga cards doesn't occupy 00:02.0, 
but this doesn't mean others use this specific slot since in qemu internal, we 
always pass -1 to assign a slot automatically to register a PCI device. So in 
some cases, we can't get this slot as we expect since that is already assigned 
previously before we need this. 

> property) for all your pci devices.  Doing it only for the IGD works too if 
> you list
> the device before any other pci device on the qemu command line.

So in my test scenario, we can see this information:

PCI: slot 2 function 0 not available for xen-pci-passthrough, in use by 
xen-platform

Thanks
Tiejun

Reply via email to