On 28/05/2015 17:16, "Gray, Mark D" <mark.d.g...@intel.com> wrote:
>> >> Non pmd threads have a core_id == UINT32_MAX, while queue ids used by >> netdevs range from 0 to the number of CPUs. Therefore core ids cannot >>be >> used directly to select a queue. >> >> This commit introduces a simple mapping to fix the problem: non pmd >> threads use queue 0, pmd threads on core 0 to N use queues 1 to N+1 >> >> Fixes: d5c199ea7ff7 ("netdev-dpdk: Properly support non pmd threads.") >> >No comments on the code. However, I tested it by adding a veth port >and sending a 'ping -I' through the other end of the veth and it >segfaults. Thanks for testing it. From the backtrace it looks like I should also update the flushing logic. How did you add the veth? Did you use a pcap vdev? Also, would you mind posting another backtrace with debug symbols? It might help understand what is going on with the queues ids Thanks, Daniele > >(gdb) bt >#0 0x0000000000526354 in ixgbe_xmit_pkts_vec () >#1 0x000000000066f473 in dpdk_queue_flush__ () >#2 0x000000000066fd16 in netdev_dpdk_rxq_recv () >#3 0x00000000005b9cd1 in netdev_rxq_recv () >#4 0x00000000005967e9 in dp_netdev_process_rxq_port () >#5 0x0000000000596f24 in pmd_thread_main () >#6 0x0000000000608041 in ovsthread_wrapper () >#7 0x0000003cc7607ee5 in start_thread () from /lib64/libpthread.so.0 >#8 0x0000003cc6ef4d1d in clone () from /lib64/libc.so.6 > >I also didnĀ¹t seen any perf drop with this patch in the normal dpdk >phy-phy >path. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev