Check traffic on multiple queues::
$ cat /proc/interrupts | grep virtio
-
-PHY-VM-PHY (IVSHMEM loopback)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-IVSHMEM can also be validated using the PHY-VM-PHY configuration. To begin, add
-a userspace bridge, two ``dpdk`` (PHY) ports, and a single ``dpdkr`` port::
-
- # Add userspace bridge
- $ ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev
-
- # Add two dpdk ports
- $ ovs-vsctl add-port br0 dpdk0 -- set Interface dpdk0 type=dpdk
- $ ovs-vsctl add-port br0 dpdk1 -- set Interface dpdk1 type=dpdk
-
- # Add one dpdkr ports
- $ ovs-vsctl add-port br0 dpdkr0 -- set Interface dpdkr0 type=dpdkr
-
-.. TODO(stephenfin): What flows should the user configure?
-
-QEMU must be patched to enable IVSHMEM support::
-
- $ cd /usr/src/
- $ wget http://wiki.qemu.org/download/qemu-2.2.1.tar.bz2
- $ tar -jxvf qemu-2.2.1.tar.bz2
- $ cd /usr/src/qemu-2.2.1
- $ wget https://raw.githubusercontent.com/netgroup-polito/un-orchestrator/master/orchestrator/compute_controller/plugins/kvm-libvirt/patches/ivshmem-qemu-2.2.1.patch
- $ patch -p1 < ivshmem-qemu-2.2.1.patch
- $ ./configure --target-list=x86_64-softmmu --enable-debug --extra-cflags='-g'
- $ make -j 4
-
-In addition, the ``cmdline_generator`` utility must be downloaded and built::
-
- $ mkdir -p /usr/src/cmdline_generator
- $ cd /usr/src/cmdline_generator
- $ wget https://raw.githubusercontent.com/netgroup-polito/un-orchestrator/master/orchestrator/compute_controller/plugins/kvm-libvirt/cmdline_generator/cmdline_generator.c
- $ wget https://raw.githubusercontent.com/netgroup-polito/un-orchestrator/master/orchestrator/compute_controller/plugins/kvm-libvirt/cmdline_generator/Makefile
- $ export RTE_SDK=/usr/src/dpdk-16.11
- $ export RTE_TARGET=x86_64-ivshmem-linuxapp-gcc
- $ make
-
-Once both the patche QEMU and ``cmdline_generator`` utilities have been built,
-run ``cmdline_generator`` to generate a suitable QEMU commandline, and use this
-to instantiate a guest. For example::
-
- $ ./build/cmdline_generator -m -p dpdkr0 XXX
- $ cmdline=`cat OVSMEMPOOL`
- $ export VM_NAME=ivshmem-vm
- $ export QCOW2_IMAGE=/root/CentOS7_x86_64.qcow2
- $ export QEMU_BIN=/usr/src/qemu-2.2.1/x86_64-softmmu/qemu-system-x86_64
- $ taskset 0x20 $QEMU_BIN -cpu host -smp 2,cores=2 -hda $QCOW2_IMAGE \
- -m 4096 --enable-kvm -name $VM_NAME -nographic -vnc :2 \
- -pidfile /tmp/vm1.pid $cmdline
-
-When the guest has started, connect to it and build and run the sample
-``dpdkr`` app. This application will simply loopback packets received over the
-DPDK ring port::
-
- $ echo 1024 > /proc/sys/vm/nr_hugepages
- $ mount -t hugetlbfs nodev /dev/hugepages (if not already mounted)
-
- # Build the DPDK ring application in the VM
- $ export RTE_SDK=/root/dpdk-16.11
- $ export RTE_TARGET=x86_64-ivshmem-linuxapp-gcc
- $ make
-
- # Run dpdkring application
- $ ./build/dpdkr -c 1 -n 4 -- -n 0
- # where "-n 0" refers to ring '0' i.e dpdkr0
$ export DPDK_BUILD=$DPDK_DIR/$DPDK_TARGET
$ make install T=$DPDK_TARGET DESTDIR=install
- If IVSHMEM support is required, use a different target::
-
- $ export DPDK_TARGET=x86_64-ivshmem-linuxapp-gcc
-
#. (Optional) Export the DPDK shared library location
If DPDK was built as a shared library, export the path to this library for
``vhost-sock-dir``
Option to set the path to the vhost-user unix socket files.
-If allocating more than one GB hugepage (as for IVSHMEM), you can configure the
+If allocating more than one GB hugepage, you can configure the
amount of memory used from any given NUMA nodes. For example, to use 1GB from
NUMA node 0, run::
$ ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0x6
-For details on using IVSHMEM with DPDK, refer to :doc:`/topics/dpdk/ivshmem`.
-
Refer to ovs-vswitchd.conf.db(5) for additional information on configuration
options.
+++ /dev/null
-..
- Licensed under the Apache License, Version 2.0 (the "License"); you may
- not use this file except in compliance with the License. You may obtain
- a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- License for the specific language governing permissions and limitations
- under the License.
-
- Convention for heading levels in Open vSwitch documentation:
-
- ======= Heading 0 (reserved for the title in a document)
- ------- Heading 1
- ~~~~~~~ Heading 2
- +++++++ Heading 3
- ''''''' Heading 4
-
- Avoid deeper levels because they do not render well.
-
-==================
-DPDK IVSHMEM Ports
-==================
-
-**TODO**