[Xen-devel] xen-pci-passthrough PCI Express support? (Re: [Qemu-devel] [PATCH v2 4/5] pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices)
On Thu, Sep 28, 2017 at 10:12:34AM -0300, Eduardo Habkost wrote: > On Thu, Sep 28, 2017 at 02:33:57AM -0600, Jan Beulich wrote: > > >>> On 27.09.17 at 21:56, wrote: > > > --- a/hw/xen/xen_pt.c > > > +++ b/hw/xen/xen_pt.c > > > @@ -964,6 +964,10 @@ static const TypeInfo xen_pci_passthrough_info = { > > > .instance_size = sizeof(XenPCIPassthroughState), > > > .instance_finalize = xen_pci_passthrough_finalize, > > > .class_init = xen_pci_passthrough_class_init, > > > +.interfaces = (InterfaceInfo[]) { > > > +{ INTERFACE_CONVENTIONAL_PCI_DEVICE }, > > > +{ }, > > > +}, > > > }; > > > > Passed through devices can be both PCI and PCIe, so following > > the description of the patch I don't think these can be statically > > given either property. Granted quite a bit of PCIe specific > > functionality may be missing in the Xen code ... > > This is just static data about what the device type supports, not > about what a given device instance really is. Deciding if the > device is PCIe or Conventional at runtime is out of the scope of > this series. > > That said, if passed through PCI Express devices are really > supported, it looks like this should be marked as hybrid. Can anybody confirm if PCI Express devices are really supported by xen-pci-passthrough? I suggest we add only INTERFACE_CONVENTIONAL_PCI_DEVICE to the class info until we confirm that. (In other words, apply this patch as-is, and add INTERFACE_PCIE_DEVICE later as a follow-up patch if appropriate.) -- Eduardo ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
[Xen-devel] xen-pci-passthrough PCI Express support? (Re: [Qemu-devel] [PATCH v2 4/5] pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices)
>>> On 03.10.17 at 02:12, wrote: > On Thu, Sep 28, 2017 at 10:12:34AM -0300, Eduardo Habkost wrote: >> On Thu, Sep 28, 2017 at 02:33:57AM -0600, Jan Beulich wrote: >> > >>> On 27.09.17 at 21:56, wrote: >> > > --- a/hw/xen/xen_pt.c >> > > +++ b/hw/xen/xen_pt.c >> > > @@ -964,6 +964,10 @@ static const TypeInfo xen_pci_passthrough_info = { >> > > .instance_size = sizeof(XenPCIPassthroughState), >> > > .instance_finalize = xen_pci_passthrough_finalize, >> > > .class_init = xen_pci_passthrough_class_init, >> > > +.interfaces = (InterfaceInfo[]) { >> > > +{ INTERFACE_CONVENTIONAL_PCI_DEVICE }, >> > > +{ }, >> > > +}, >> > > }; >> > >> > Passed through devices can be both PCI and PCIe, so following >> > the description of the patch I don't think these can be statically >> > given either property. Granted quite a bit of PCIe specific >> > functionality may be missing in the Xen code ... >> >> This is just static data about what the device type supports, not >> about what a given device instance really is. Deciding if the >> device is PCIe or Conventional at runtime is out of the scope of >> this series. >> >> That said, if passed through PCI Express devices are really >> supported, it looks like this should be marked as hybrid. > > Can anybody confirm if PCI Express devices are really supported > by xen-pci-passthrough? I think I've clearly said they're supported, with some limitations. Jan ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] xen-pci-passthrough PCI Express support? (Re: [Qemu-devel] [PATCH v2 4/5] pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices)
On Mon, 2 Oct 2017, Eduardo Habkost wrote: > On Thu, Sep 28, 2017 at 10:12:34AM -0300, Eduardo Habkost wrote: > > On Thu, Sep 28, 2017 at 02:33:57AM -0600, Jan Beulich wrote: > > > >>> On 27.09.17 at 21:56, wrote: > > > > --- a/hw/xen/xen_pt.c > > > > +++ b/hw/xen/xen_pt.c > > > > @@ -964,6 +964,10 @@ static const TypeInfo xen_pci_passthrough_info = { > > > > .instance_size = sizeof(XenPCIPassthroughState), > > > > .instance_finalize = xen_pci_passthrough_finalize, > > > > .class_init = xen_pci_passthrough_class_init, > > > > +.interfaces = (InterfaceInfo[]) { > > > > +{ INTERFACE_CONVENTIONAL_PCI_DEVICE }, > > > > +{ }, > > > > +}, > > > > }; > > > > > > Passed through devices can be both PCI and PCIe, so following > > > the description of the patch I don't think these can be statically > > > given either property. Granted quite a bit of PCIe specific > > > functionality may be missing in the Xen code ... > > > > This is just static data about what the device type supports, not > > about what a given device instance really is. Deciding if the > > device is PCIe or Conventional at runtime is out of the scope of > > this series. > > > > That said, if passed through PCI Express devices are really > > supported, it looks like this should be marked as hybrid. > > Can anybody confirm if PCI Express devices are really supported > by xen-pci-passthrough? > > I suggest we add only INTERFACE_CONVENTIONAL_PCI_DEVICE to the > class info until we confirm that. > > (In other words, apply this patch as-is, and add > INTERFACE_PCIE_DEVICE later as a follow-up patch if appropriate.) Yes, xen-pci-passthrough can expose PCI Express devices to the guest. I don't think the old xen-pci-passthrough code does anything special to mark it as such internally in QEMU, but it can deal with the PCI Express Capabilities and expose/emulate them for the guest's benefit. ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] xen-pci-passthrough PCI Express support? (Re: [Qemu-devel] [PATCH v2 4/5] pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices)
On Wed, Oct 04, 2017 at 03:08:15AM -0600, Jan Beulich wrote: > >>> On 03.10.17 at 02:12, wrote: > > On Thu, Sep 28, 2017 at 10:12:34AM -0300, Eduardo Habkost wrote: > >> On Thu, Sep 28, 2017 at 02:33:57AM -0600, Jan Beulich wrote: > >> > >>> On 27.09.17 at 21:56, wrote: > >> > > --- a/hw/xen/xen_pt.c > >> > > +++ b/hw/xen/xen_pt.c > >> > > @@ -964,6 +964,10 @@ static const TypeInfo xen_pci_passthrough_info = { > >> > > .instance_size = sizeof(XenPCIPassthroughState), > >> > > .instance_finalize = xen_pci_passthrough_finalize, > >> > > .class_init = xen_pci_passthrough_class_init, > >> > > +.interfaces = (InterfaceInfo[]) { > >> > > +{ INTERFACE_CONVENTIONAL_PCI_DEVICE }, > >> > > +{ }, > >> > > +}, > >> > > }; > >> > > >> > Passed through devices can be both PCI and PCIe, so following > >> > the description of the patch I don't think these can be statically > >> > given either property. Granted quite a bit of PCIe specific > >> > functionality may be missing in the Xen code ... > >> > >> This is just static data about what the device type supports, not > >> about what a given device instance really is. Deciding if the > >> device is PCIe or Conventional at runtime is out of the scope of > >> this series. > >> > >> That said, if passed through PCI Express devices are really > >> supported, it looks like this should be marked as hybrid. > > > > Can anybody confirm if PCI Express devices are really supported > > by xen-pci-passthrough? > > I think I've clearly said they're supported, with some limitations. Sorry, thanks. I thought the possible missing PCIe functionality could mean the device couldn't appear as PCI Express to the guest. I will submit a follow-up patch adding INTERFACE_PCIE_DEVICE to xen-pci-passthrough. -- Eduardo ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel