Re: [pci PATCH v7 2/5] virtio_pci: Add support for unmanaged SR-IOV on virtio_pci devices
flat view
From: Michael S. Tsirkin <mst@redhat.com>
Date: 2018-04-03 13:11:39
Also in:
kvm, linux-nvme, linux-pci, lkml
On Thu, Mar 15, 2018 at 11:42:41AM -0700, Alexander Duyck wrote:
From: Alexander Duyck <redacted> Hardware-realized virtio_pci devices can implement SR-IOV, so this patch enables its use. The device in question is an upcoming Intel NIC that implements both a virtio_net PF and virtio_net VFs. These are hardware realizations of what has been up to now been a software interface. The device in question has the following 4-part PCI IDs: PF: vendor: 1af4 device: 1041 subvendor: 8086 subdevice: 15fe VF: vendor: 1af4 device: 1041 subvendor: 8086 subdevice: 05fe The patch currently needs no check for device ID, because the callback will never be made for devices that do not assert the capability or when run on a platform incapable of SR-IOV. One reason for this patch is because the hardware requires the vendor ID of a VF to be the same as the vendor ID of the PF that created it. So it seemed logical to simply have a fully-functioning virtio_net PF create the VFs. This patch makes that possible. Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Mark Rustad <redacted> Signed-off-by: Alexander Duyck <redacted>
I thought hard about this, and I think we need a feature
bit for this. This way host can detect support,
and we can also change our minds later if we need
to modify the interface and manage VFs after all.
It seems PCI specific so non pci transports would disable the feature
for now.
quoted hunk ↗ jump to hunk
--- v4: Dropped call to pci_disable_sriov in virtio_pci_remove function v5: Replaced call to pci_sriov_configure_unmanaged with pci_sriov_configure_simple v6: Dropped "#ifdef" checks for IOV wrapping sriov_configure definition v7: No code change, added Reviewed-by drivers/virtio/virtio_pci_common.c | 1 + 1 file changed, 1 insertion(+)diff --git a/drivers/virtio/virtio_pci_common.c b/drivers/virtio/virtio_pci_common.c index 48d4d1cf1cb6..67a227fd7aa0 100644 --- a/drivers/virtio/virtio_pci_common.c +++ b/drivers/virtio/virtio_pci_common.c@@ -596,6 +596,7 @@ static void virtio_pci_remove(struct pci_dev *pci_dev) #ifdef CONFIG_PM_SLEEP .driver.pm = &virtio_pci_pm_ops, #endif + .sriov_configure = pci_sriov_configure_simple, }; module_pci_driver(virtio_pci_driver); ---------------------------------------------------------------------To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org