Hi, Patch series uses vfio-noiommu-way to access virtio-net pci interface. Tested for arm64 thunderX/ x86_64 platform. Patch builds for x86/i386/arm/armv8/thunderX. Tested with testpmd application.
Patchset rebased on yuan's under review virtio-1.0 v2 patchset and using vfio-noiommu patch. Refer my public branch [1]. Step to enable vfio-noiommu mode: - modprobe vfio-pci echo 1 > /sys/module/vfio/parameters/enable_unsafe_* - then bind ./tools/dpdk_nic_bind.py -b vfio-pci 0000:00:03.0 - Testpmd application to try out for: ./app/testpmd -c 0x3 -n 4 -- -i --portmask=0x0 --nb-cores=1 --port-topology=chained On host side ping to tapX interface and observe pkt_cnt on guest side. v4 --> v5: - Introducing RTE_KDRV_VFIO_NOIOMMU driver mode - Incorporated v4 review comments, Pl. refer each patchset for review change. For older version(v4.. v1) patch history, refer [2]. Thanks. [1]https://github.com/sshukla82/dpdk.git branch master-virtio-vfio-v5 [2]http://comments.gmane.org/gmane.comp.networking.dpdk.devel/31402 Anatoly Burakov (1): vfio: Support for no-IOMMU mode Santosh Shukla (10): virtio: Introduce config RTE_VIRTIO_INC_VECTOR linuxapp: eal: arm: Always return 0 for rte_eal_iopl_init() linuxapp/vfio: ignore mapping for ioport region virtio_pci.h: build fix for sys/io.h for non-x86 arch eal: pci: vfio: add rd/wr func for pci bar space virtio: vfio: add api support to rd/wr ioport bar virtio: pci: extend virtio pci rw api for vfio interface eal: pci: introduce RTE_KDRV_VFIO_NOIOMMUi driver mode virtio_pci: do not parse if interface is vfio-noiommu virtio: pci: add dummy func definition for in/outb for non-x86 arch doc/guides/rel_notes/release_2_3.rst | 3 - drivers/net/virtio/virtio_ethdev.c | 302 ++++++++- drivers/net/virtio/virtio_ethdev.h | 3 +- drivers/net/virtio/virtio_pci.c | 793 +---------------------- drivers/net/virtio/virtio_pci.h | 120 +--- drivers/net/virtio/virtio_rxtx.c | 21 +- drivers/net/virtio/virtio_rxtx_simple.c | 12 +- drivers/net/virtio/virtqueue.h | 4 +- lib/librte_eal/bsdapp/eal/eal_pci.c | 4 +- lib/librte_eal/bsdapp/eal/rte_eal_version.map | 7 - lib/librte_eal/common/eal_common_pci.c | 4 +- lib/librte_eal/common/eal_private.h | 18 + lib/librte_eal/common/include/rte_pci.h | 27 - lib/librte_eal/linuxapp/eal/eal_pci.c | 4 +- lib/librte_eal/linuxapp/eal/rte_eal_version.map | 7 - 15 files changed, 380 insertions(+), 949 deletions(-) -- 1.7.9.5