With increasing interest for virtio, NIC have appeared that provide SRIOV with PF appearing in the host as a virtio network device and probably more similiar NICs will emerge. igb_uio of DPDK or pci-pf-stub can be used to provide SRIOV, however there are hypervisors/VMMs that require VFs, which are to be PCI passthrued to a VM, to have its PF with network representation in the kernel. For virtio-net based PFs, virtio-net could do that by providing both SRIOV interface and netdev representation. Enable SRIOV via VIRTIO_F_SR_IOV feature bit if the device supports it. Signed-off-by: Arkadiusz Kudan <arkadiusz.kudan at codilime.com> Signed-off-by: Miroslaw Walukiewicz <Miroslaw.Walukiewicz at intel.com> --- drivers/net/virtio_net.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 0824e6999e49..a03aa7e99689 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -3249,6 +3249,7 @@ static struct virtio_device_id id_table[] = { static unsigned int features[] = { VIRTNET_FEATURES, + VIRTIO_F_SR_IOV, }; static unsigned int features_legacy[] = { -- 2.31.1 -- ------------------------------- This document contains material that is confidential in CodiLime Sp. z o.o. DO NOT PRINT. DO NOT COPY. DO NOT DISTRIBUTE. If you are not the intended recipient of this document, be aware that any use, review, retransmission, distribution, reproduction or any action taken in reliance upon this message is strictly prohibited. If you received this in error, please contact the sender and help at codilime.com <mailto:help at codilime.com>. Return the paper copy, delete the material from all computers and storage media.
? 2021/4/26 ??6:21, Arkadiusz Kudan ??:> With increasing interest for virtio, NIC have appeared that provide > SRIOV with PF appearing in the host as a virtio network device > and probably more similiar NICs will emerge. > igb_uio of DPDK or pci-pf-stub can be used to provide SRIOV, > however there are hypervisors/VMMs that require VFs, which are > to be PCI passthrued to a VM, to have its PF with network > representation in the kernel. For virtio-net based PFs, > virtio-net could do that by providing both SRIOV interface and > netdev representation. > > Enable SRIOV via VIRTIO_F_SR_IOV feature bit if the device > supports it. > > Signed-off-by: Arkadiusz Kudan <arkadiusz.kudan at codilime.com> > Signed-off-by: Miroslaw Walukiewicz <Miroslaw.Walukiewicz at intel.com> > --- > drivers/net/virtio_net.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c > index 0824e6999e49..a03aa7e99689 100644 > --- a/drivers/net/virtio_net.c > +++ b/drivers/net/virtio_net.c > @@ -3249,6 +3249,7 @@ static struct virtio_device_id id_table[] = { > > static unsigned int features[] = { > VIRTNET_FEATURES, > + VIRTIO_F_SR_IOV, > };So I'm suprised that it needs to be enabled per device. We had: static void vp_transport_features(struct virtio_device *vdev, u64 features) { ??????? struct virtio_pci_device *vp_dev = to_vp_device(vdev); ??????? struct pci_dev *pci_dev = vp_dev->pci_dev; ??????? if ((features & BIT_ULL(VIRTIO_F_SR_IOV)) && ??????????????????????? pci_find_ext_capability(pci_dev, PCI_EXT_CAP_ID_SRIOV)) ??????????????? __virtio_set_bit(vdev, VIRTIO_F_SR_IOV); } And I had used this driver for SRIOV virtio-pci hardware for more than one year. Thanks> > static unsigned int features_legacy[] = {