[ovs-dev] [PATCH] dpif-netdev: Fix non-pmd thread queue id.
Daniele Di Proietto
diproiettod at vmware.com
Thu May 28 16:58:15 UTC 2015
On 28/05/2015 17:16, "Gray, Mark D" <mark.d.gray at 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.
More information about the dev
mailing list