Hi all,

we are using ovs with dpdk-interfaces and vhostuser-interfaces and want to try 
the VMs with different multi-queue settings. When we specify 2 cores and 2 
multi-queues for a dpdk-interface but only one queue for the vhost-interfaces, 
ovs-vswitchd crashes at start of the VM (or latest when traffic is sent).

The version of ovs is : 2.5.90, master branch, latest commit 
7a15be69b00fe8f66a3f3929434b39676f325a7a)
It has been built and is running on: Linux version 3.13.0-87-generic 
(buildd@lgw01-25) (gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) ) 
#133-Ubuntu SMP Tue May 24 18:32:09 UTC 2016

The configuration is:
ovs-vsctl show
0e191ed4-040b-458c-bad8-feb6f7c90e3a
    Bridge br-prv
        Port br-prv
            Interface br-prv
                type: internal
        Port "dpdk0"
            Interface "dpdk0"
                type: dpdk
                options: {n_rxq="2"}
    Bridge br-int
        Port br-int
            Interface br-int
                type: internal
        Port "vhost112"
            Interface "vhost112"
                type: dpdkvhostuser
                options: {n_rxq="1"}
        Port "vhost111"
            Interface "vhost111"
                type: dpdkvhostuser
                options: {n_rxq="1"}
        Port "vxlan0"
            Interface "vxlan0"
                type: vxlan
                options: {key=flow, remote_ip="10.1.2.2"}

ovs-appctl dpif-netdev/pmd-rxq-show
pmd thread numa_id 0 core_id 1:
                port: vhost112   queue-id: 0
                port: dpdk0        queue-id: 1
pmd thread numa_id 0 core_id 2:
                port: dpdk0        queue-id: 0
                port: vhost111   queue-id: 0

appctl-m dpif/show
                br-int:
                                br-int 65534/6: (tap)
                                vhost111 11/3: (dpdkvhostuser: 
configured_rx_queues=1, configured_tx_queues=1, requested_rx_queues=1, 
requested_tx_queues=21)
                                vhost112 12/5: (dpdkvhostuser: 
configured_rx_queues=1, configured_tx_queues=1, requested_rx_queues=1, 
requested_tx_queues=21)
                                vxlan0 100/4: (vxlan: key=flow, 
remote_ip=10.1.2.2)
                br-prv:
                                br-prv 65534/1: (tap)
                                dpdk0 1/2: (dpdk: configured_rx_queues=2, 
configured_tx_queues=21, requested_rx_queues=2, requested_tx_queues=21)

(gdb) bt
#0  0x00000000005356e4 in ixgbe_xmit_pkts_vec ()
#1  0x00000000006df384 in rte_eth_tx_burst (nb_pkts=<optimized out>, 
tx_pkts=<optimized out>, queue_id=1, port_id=<optimized out>)
    at /opt/dpdk-16.04/x86_64-native-linuxapp-gcc//include/rte_ethdev.h:2791
#2  dpdk_queue_flush__ (qid=<optimized out>, dev=<optimized out>) at 
lib/netdev-dpdk.c:1099
#3  dpdk_queue_flush (qid=<optimized out>, dev=<optimized out>) at 
lib/netdev-dpdk.c:1133
#4  netdev_dpdk_rxq_recv (rxq=0x7fbe127ad4c0, packets=0x7fc26761e408, 
c=0x7fc26761e400) at lib/netdev-dpdk.c:1312
#5  0x000000000061be98 in netdev_rxq_recv (rx=<optimized out>, 
batch=batch@entry=0x7fc26761e400) at lib/netdev.c:628
#6  0x00000000005f17bb in dp_netdev_process_rxq_port (pmd=pmd@entry=0x29ea810, 
rxq=<optimized out>, port=<optimized out>, port=<optimized out>)
    at lib/dpif-netdev.c:2619
#7  0x00000000005f1b27 in pmd_thread_main (f_=0x29ea810) at 
lib/dpif-netdev.c:2864
#8  0x000000000067dde4 in ovsthread_wrapper (aux_=<optimized out>) at 
lib/ovs-thread.c:342
#9  0x00007fc26b90e184 in start_thread (arg=0x7fc26761f700) at 
pthread_create.c:312
#10 0x00007fc26af2237d in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:111

This is the minimal configuration which leads to the fault. Our complete 
configuration contains more vhostuser interfaces than above. We observed that 
only the combination of 2 cores/queues for dpdk-interface and 1 queue for 
vhostuser interfaces results in an ovs-vswitchd crash, in detail:
Dpdk0: 1 cores/queues & all vhost-ports: 1 queue => successful
Dpdk0: 2 cores/queues & all vhost-ports: 1 queue => crash
Dpdk0: 2 cores/queues & all vhost-ports: 2 queue => successful
Dpdk0: 4 cores/queues & all vhost-ports: 1 queue => successful
Dpdk0: 4 cores/queues & all vhost-ports: 2 queue => successful
Dpdk0: 4 cores/queues & all vhost-ports: 4 queue => successful

Do you have any suggestions?

Best regards,

Mechthild Buescher



_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to