From: David Gibson <david@gibson.dropbear.id.au>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: qemu-devel@nongnu.org, David Gibson <dgibson@redhat.com>,
Alistair Francis <alistair23@gmail.com>,
Laine Stump <laine@redhat.com>,
Alex Williamson <alex.williamson@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
Marcel Apfelbaum <marcel@redhat.com>,
Dmitry Fleytman <dmitry@daynix.com>,
Jason Wang <jasowang@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Gerd Hoffmann <kraxel@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v2 2/5] pci: Add interface names to hybrid PCI devices
Date: Thu, 28 Sep 2017 14:08:09 +1000 [thread overview]
Message-ID: <20170928040809.GA12504@umbus> (raw)
In-Reply-To: <20170927195635.16014-3-ehabkost@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 4649 bytes --]
On Wed, Sep 27, 2017 at 04:56:32PM -0300, Eduardo Habkost wrote:
> The following devices support both PCI Express and Conventional
> PCI, by including special code to handle the QEMU_PCI_CAP_EXPRESS
> flag and/or conditional pcie_endpoint_cap_init() calls:
>
> * vfio-pci (is_express=1, but legacy PCI handled by
> vfio_populate_device())
In the case of VFIO, won't this depend on the capabilities of the
device on the host?
> * vmxnet3 (is_express=0, but PCIe handled by vmxnet3_realize())
> * pvscsi (is_express=0, but PCIe handled by pvscsi_realize())
> * virtio-pci (is_express=0, but PCIe handled by
> virtio_pci_dc_realize(), and additional legacy PCI code at
> virtio_pci_realize())
> * base-xhci (is_express=1, but pcie_endpoint_cap_init() call
> is conditional on pci_bus_is_express(dev->bus)
> * Note that xhci does not clear QEMU_PCI_CAP_EXPRESS like the
> other hybrid devices
>
> Cc: Dmitry Fleytman <dmitry@daynix.com>
> Cc: Jason Wang <jasowang@redhat.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Alex Williamson <alex.williamson@redhat.com>
> Cc: "Michael S. Tsirkin" <mst@redhat.com>
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Except for the query above,
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
> ---
> Changes v1 -> v2:
> * s/legacy/conventional/
> * Suggested-by: Alex Williamson <alex.williamson@redhat.com>
> * Mark base-xhci as hybrid too
> ---
> hw/net/vmxnet3.c | 5 +++++
> hw/scsi/vmw_pvscsi.c | 2 ++
> hw/usb/hcd-xhci.c | 5 +++++
> hw/vfio/pci.c | 5 +++++
> hw/virtio/virtio-pci.c | 5 +++++
> 5 files changed, 22 insertions(+)
>
> diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c
> index a19a7a31dd..f99d9a69ec 100644
> --- a/hw/net/vmxnet3.c
> +++ b/hw/net/vmxnet3.c
> @@ -2651,6 +2651,11 @@ static const TypeInfo vmxnet3_info = {
> .instance_size = sizeof(VMXNET3State),
> .class_init = vmxnet3_class_init,
> .instance_init = vmxnet3_instance_init,
> + .interfaces = (InterfaceInfo[]) {
> + { INTERFACE_PCIE_DEVICE },
> + { INTERFACE_CONVENTIONAL_PCI_DEVICE },
> + { }
> + },
> };
>
> static void vmxnet3_register_types(void)
> diff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c
> index 6d3f0bf11d..d6b315f8b2 100644
> --- a/hw/scsi/vmw_pvscsi.c
> +++ b/hw/scsi/vmw_pvscsi.c
> @@ -1300,6 +1300,8 @@ static const TypeInfo pvscsi_info = {
> .class_init = pvscsi_class_init,
> .interfaces = (InterfaceInfo[]) {
> { TYPE_HOTPLUG_HANDLER },
> + { INTERFACE_PCIE_DEVICE },
> + { INTERFACE_CONVENTIONAL_PCI_DEVICE },
> { }
> }
> };
> diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c
> index d75c085d94..af3a9d88de 100644
> --- a/hw/usb/hcd-xhci.c
> +++ b/hw/usb/hcd-xhci.c
> @@ -3670,6 +3670,11 @@ static const TypeInfo xhci_info = {
> .instance_size = sizeof(XHCIState),
> .class_init = xhci_class_init,
> .abstract = true,
> + .interfaces = (InterfaceInfo[]) {
> + { INTERFACE_PCIE_DEVICE },
> + { INTERFACE_CONVENTIONAL_PCI_DEVICE },
> + { }
> + },
> };
>
> static void qemu_xhci_class_init(ObjectClass *klass, void *data)
> diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
> index 31e1edf447..913433d6ba 100644
> --- a/hw/vfio/pci.c
> +++ b/hw/vfio/pci.c
> @@ -3023,6 +3023,11 @@ static const TypeInfo vfio_pci_dev_info = {
> .class_init = vfio_pci_dev_class_init,
> .instance_init = vfio_instance_init,
> .instance_finalize = vfio_instance_finalize,
> + .interfaces = (InterfaceInfo[]) {
> + { INTERFACE_PCIE_DEVICE },
> + { INTERFACE_CONVENTIONAL_PCI_DEVICE },
> + { }
> + },
> };
>
> static void register_vfio_pci_dev_type(void)
> diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
> index 8b0d6b69cd..67c8ab63ad 100644
> --- a/hw/virtio/virtio-pci.c
> +++ b/hw/virtio/virtio-pci.c
> @@ -1958,6 +1958,11 @@ static const TypeInfo virtio_pci_info = {
> .class_init = virtio_pci_class_init,
> .class_size = sizeof(VirtioPCIClass),
> .abstract = true,
> + .interfaces = (InterfaceInfo[]) {
> + { INTERFACE_PCIE_DEVICE },
> + { INTERFACE_CONVENTIONAL_PCI_DEVICE },
> + { }
> + },
> };
>
> /* virtio-blk-pci */
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2017-09-28 4:13 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-27 19:56 [Qemu-devel] [PATCH v2 0/5] Mark conventional/PCIe/hybrid PCI devices using interface names Eduardo Habkost
2017-09-27 19:56 ` [Qemu-devel] [PATCH v2 1/5] pci: conventional-pci-device and pci-express-device interfaces Eduardo Habkost
2017-09-28 4:04 ` David Gibson
2017-09-28 9:08 ` Marcel Apfelbaum
2017-09-27 19:56 ` [Qemu-devel] [PATCH v2 2/5] pci: Add interface names to hybrid PCI devices Eduardo Habkost
2017-09-28 4:08 ` David Gibson [this message]
2017-09-28 9:27 ` Marcel Apfelbaum
2017-09-28 13:06 ` Eduardo Habkost
2017-09-29 0:35 ` David Gibson
2017-09-27 19:56 ` [Qemu-devel] [PATCH v2 3/5] pci: Add INTERFACE_PCIE_DEVICE to all PCIe devices Eduardo Habkost
2017-09-28 4:10 ` David Gibson
2017-09-28 9:31 ` Marcel Apfelbaum
2017-09-27 19:56 ` [Qemu-arm] [PATCH v2 4/5] pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices Eduardo Habkost
2017-09-27 19:56 ` Eduardo Habkost
2017-09-27 19:56 ` [Qemu-devel] " Eduardo Habkost
2017-09-28 4:12 ` David Gibson
2017-09-28 4:12 ` [Qemu-arm] " David Gibson
2017-09-28 4:12 ` [Qemu-devel] " David Gibson
2017-09-28 8:33 ` [Qemu-devel] [Xen-devel] " Jan Beulich
2017-09-28 8:33 ` Jan Beulich
2017-09-28 8:33 ` [Qemu-devel] [Xen-devel] " Jan Beulich
2017-09-28 13:12 ` [Qemu-arm] " Eduardo Habkost
2017-09-28 13:12 ` [Qemu-devel] " Eduardo Habkost
2017-10-03 0:12 ` xen-pci-passthrough PCI Express support? (Re: [Qemu-devel] [PATCH v2 4/5] pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices) Eduardo Habkost
2017-10-03 0:12 ` [Qemu-arm] xen-pci-passthrough PCI Express support? (Re: [Qemu-devel] [Xen-devel] " Eduardo Habkost
2017-10-03 0:12 ` [Qemu-devel] xen-pci-passthrough PCI Express support? (Re: " Eduardo Habkost
2017-10-03 0:12 ` Eduardo Habkost
2017-10-03 17:12 ` Stefano Stabellini
2017-10-03 17:12 ` Stefano Stabellini
2017-10-03 17:12 ` [Qemu-arm] xen-pci-passthrough PCI Express support? (Re: [Qemu-devel] " Stefano Stabellini
2017-10-03 17:12 ` xen-pci-passthrough PCI Express support? (Re: [Qemu-devel] " Stefano Stabellini
2017-10-04 9:08 ` Jan Beulich
2017-10-04 9:08 ` [Qemu-arm] xen-pci-passthrough PCI Express support? (Re: [Qemu-devel] [Xen-devel] " Jan Beulich
2017-10-04 9:08 ` [Qemu-devel] xen-pci-passthrough PCI Express support? (Re: " Jan Beulich
2017-10-04 9:08 ` Jan Beulich
2017-10-04 13:06 ` xen-pci-passthrough PCI Express support? (Re: [Qemu-devel] " Eduardo Habkost
2017-10-04 13:06 ` [Qemu-arm] xen-pci-passthrough PCI Express support? (Re: [Qemu-devel] [Xen-devel] " Eduardo Habkost
2017-10-04 13:06 ` [Qemu-devel] xen-pci-passthrough PCI Express support? (Re: " Eduardo Habkost
2017-10-04 13:06 ` Eduardo Habkost
2017-10-05 12:45 ` [Qemu-arm] [PATCH] xen/pt: Mark TYPE_XEN_PT_DEVICE as hybrid Eduardo Habkost
2017-10-05 12:45 ` [Qemu-devel] " Eduardo Habkost
2017-10-05 12:45 ` Eduardo Habkost
2017-09-28 13:12 ` [PATCH v2 4/5] pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices Eduardo Habkost
2017-09-28 9:35 ` Marcel Apfelbaum
2017-09-28 9:35 ` [Qemu-arm] " Marcel Apfelbaum
2017-09-28 9:35 ` [Qemu-devel] " Marcel Apfelbaum
2017-09-27 19:56 ` [Qemu-devel] [PATCH v2 5/5] pci: Validate interfaces on base_class_init Eduardo Habkost
2017-09-28 4:13 ` David Gibson
2017-09-28 9:36 ` Marcel Apfelbaum
2017-09-28 9:39 ` [Qemu-devel] [PATCH v2 0/5] Mark conventional/PCIe/hybrid PCI devices using interface names Marcel Apfelbaum
2017-09-28 13:15 ` Eduardo Habkost
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=20170928040809.GA12504@umbus \
--to=david@gibson.dropbear.id.au \
--cc=alex.williamson@redhat.com \
--cc=alistair23@gmail.com \
--cc=dgibson@redhat.com \
--cc=dmitry@daynix.com \
--cc=ehabkost@redhat.com \
--cc=jasowang@redhat.com \
--cc=kraxel@redhat.com \
--cc=laine@redhat.com \
--cc=marcel@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.