Hi, Patch series to allow access to virtio using vfio interface. Tested for vfio-noiommu mode for x86_64/arm64{thunderX} platform. patch series builds successfully for armv7/v8/x86_64/i686.
Note: Rebased on David(s) recent patch series titled "rework virtio for ioport". 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. v6-->v7: - added support for vfio map/umap/rd/wr method for linuxapp. - Tested for x86 / arm64{thunderX} vfio mode both. v5-->v6: - Removed KDRV_NOIOMMU mode - patchseries aligned in topic-wise ordered way - Introduced virtio_io.h; has in/out api, and header file sys/io.h - Renamed virtio_vfio_rw.h to virtio_vfio_io.h, renamed ioport_in/out{b,w,l} to vfio_in/out{b,w,l} 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 virtio-vfio-v6-review [2] http://comments.gmane.org/gmane.comp.networking.dpdk.devel/31402 Santosh Shukla (4): eal/linux: never check iopl for arm virtio: Introduce config RTE_VIRTIO_INC_VECTOR eal/linux: vfio: ignore mapping for ioport region eal/linux: vfio: add pci ioport support config/common_linuxapp | 1 + config/defconfig_arm-armv7a-linuxapp-gcc | 4 +- config/defconfig_arm64-armv8a-linuxapp-gcc | 4 +- config/defconfig_i686-native-linuxapp-gcc | 1 + config/defconfig_i686-native-linuxapp-icc | 1 + drivers/net/virtio/Makefile | 2 +- drivers/net/virtio/virtio_rxtx.c | 16 ++++++- drivers/net/virtio/virtio_rxtx.h | 2 + lib/librte_eal/linuxapp/eal/eal.c | 2 + lib/librte_eal/linuxapp/eal/eal_pci_vfio.c | 68 ++++++++++++++++++++++------ 10 files changed, 83 insertions(+), 18 deletions(-) -- 1.7.9.5