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
[email protected]
http://openvswitch.org/mailman/listinfo/discuss