[dpdk-dev] Fw: Using KNI with virtio-net-pci

Ruslan Osmanov rrosmanov at gmail.com
Fri Jun 3 21:12:19 CEST 2016


Hi,

I had posted the following to the users mailing list a couple of days
ago, but there was no answer. My question contains references to the
DPDK source code, so I probably will not break the rules by
sending a copy to the dev mailing list.

Begin forwarded message:

Date: Thu, 2 Jun 2016 10:43:23 +0700
From: Ruslan Osmanov <rrosmanov at gmail.com>
To: users at dpdk.org
Subject: Using KNI with virtio-net-pci


Hi,

I'm going to develop a DPDK application on a laptop, but the laptop's
hardware is not supported by DPDK. Furtunately, DPDK supports
paravirtualized devices(http://www.dpdk.org/doc/nics) including
virtio-net.  

So I'm trying to configure a QEMU guest for running the Kernel NIC
Interface(KNI) on a virtio-net-pci device. The problem is that the KNI
sample application doesn't accept the virtio-pci driver.


QEMU command:

eth_device=virtio-net-pci
exec qemu-system-x86_64 -enable-kvm \
  -cpu host -smp 2 \
  -vga std \
  -mem-prealloc -mem-path /dev/hugepages \
  -drive file=GentooVM.img,if=virtio \
  -netdev user,id=vmnic,hostname=gentoo \
  -device $eth_device,netdev=vmnic \
  -m 1024M \
  -monitor stdio \
  -name "Gentoo VM"

Running the KNI sample application in the guest:

sudo ./examples/kni/build/app/kni -c 0x3 -n 4 -- \
-P -p 0x1 --config="(0,0,1)"

EAL: Detected lcore 0 as core 0 on socket 0
EAL: Detected lcore 1 as core 0 on socket 0
EAL: Support maximum 128 logical core(s) by configuration.
EAL: Detected 2 lcore(s)
EAL: Probing VFIO support...
EAL:   IOMMU type 1 (Type 1) is supported
EAL:   IOMMU type 8 (No-IOMMU) is not supported
EAL: VFIO support initialized
EAL: Setting up physically contiguous memory...
...
EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using
unreliable clock cycles !
EAL: Master lcore 0 is ready (tid=657d58c0;cpuset=[0])
PMD: rte_igbvf_pmd_init():  >>
EAL: lcore 1 is ready (tid=305ff700;cpuset=[1])
EAL: PCI device 0000:00:03.0 on NUMA socket -1
EAL:   probe driver: 1af4:1000 rte_virtio_pmd
EAL:   Not managed by a supported kernel driver(0), skipped
PMD: virtio_read_caps(): failed to map pci device!
PMD: vtpci_init(): trying with legacy virtio pci.
Segmentation fault

$ lspci
...
00:03.0 Ethernet controller: Red Hat, Inc Virtio network device

I've noticed that pci_scan_one() function sets dev->kdrv =
RTE_KDRV_NONE in lib/librte_eal/linuxapp/eal/eal_pci.c, while the
driver is detected as virtio-pci
(from /sys/bus/pci/devices/0000:00:03.0/driver).

Is it even possible to run KNI with virtio-net-pci device?

If it's impossible, then are there other options?

-- 
Ruslan Osmanov


-- 
Ruslan Osmanov


More information about the dev mailing list