[dpdk-dev] [PATCH v6 0/8] Add virtio support for arm/arm64
Santosh Shukla
sshukla at mvista.com
Fri Jan 29 19:25:50 CET 2016
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.
Patchset rebased on yuan's under review virtio-1.0 v2 patchset. 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.
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 (8):
eal: pci: add api to rd/wr pci bar region
linuxapp/vfio: ignore mapping for ioport region
eal/linux: never check iopl for arm
virtio: Introduce config RTE_VIRTIO_INC_VECTOR
virtio: move io header and api from virtio_pci.h
virtio: add vfio api to rd/wr ioport space
virtio: extend pci rw api for vfio
virtio: do not parse if interface is vfio
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_io.h | 114 +++++++++++++++++++++++
drivers/net/virtio/virtio_pci.c | 113 +++++++++++++++++++---
drivers/net/virtio/virtio_pci.h | 30 ------
drivers/net/virtio/virtio_rxtx.c | 16 +++-
drivers/net/virtio/virtio_rxtx.h | 2 +
drivers/net/virtio/virtio_vfio_io.h | 104 +++++++++++++++++++++
lib/librte_eal/bsdapp/eal/eal_pci.c | 19 ++++
lib/librte_eal/bsdapp/eal/rte_eal_version.map | 3 +
lib/librte_eal/common/include/rte_pci.h | 38 ++++++++
lib/librte_eal/linuxapp/eal/eal.c | 2 +
lib/librte_eal/linuxapp/eal/eal_pci.c | 34 +++++++
lib/librte_eal/linuxapp/eal/eal_pci_init.h | 6 ++
lib/librte_eal/linuxapp/eal/eal_pci_vfio.c | 48 ++++++++++
lib/librte_eal/linuxapp/eal/rte_eal_version.map | 3 +
20 files changed, 498 insertions(+), 47 deletions(-)
create mode 100644 drivers/net/virtio/virtio_io.h
create mode 100644 drivers/net/virtio/virtio_vfio_io.h
--
1.7.9.5
More information about the dev
mailing list