Sure, I’ll post v2 in a minute.

Thanks

On Jul 17, 2014, at 11:30 AM, Pravin Shelar <pshe...@nicira.com> wrote:

> On Mon, Jul 14, 2014 at 1:55 PM, Daniele Di Proietto
> <ddiproie...@vmware.com> wrote:
>> DPDK mempools rely on rte_lcore_id() to implement a thread-local cache.
>> Our non pmd threads had rte_lcore_id() == 0. This allowed concurrent access 
>> to
>> the "thread-local" cache, causing crashes.
>> 
>> This commit resolves the issue with the following changes:
>> 
>> - Every non pmd thread has the same lcore_id (0, for management reasons), 
>> which
>>  is not shared with any pmd thread (lcore_id for pmd threads now start from 
>> 1)
>> - DPDK mbufs must be allocated/freed in pmd threads. When there is the need 
>> to
>>  use mempools in non pmd threads, like in dpdk_do_tx_copy(), a mutex must be
>>  held.
>> - The previous change does not allow us anymore to pass DPDK mbufs to handler
>>  threads: therefore this commit partially revert 143859ec63d45e. Now packets
>>  are copied for upcall processing. We can remove the extra memcpy by
>>  processing upcalls in the pmd thread itself.
>> 
>> With the introduction of the extra locking, the packet throughput will be 
>> lower
>> in the following cases:
>> 
>> - When using internal (tap) devices with DPDK devices on the same datapath.
>>  Anyway, to support internal devices efficiently, we needed DPDK KNI devices,
>>  which will be proper pmd devices and will not need this locking.
>> - When packets are processed in the slow path by non pmd threads. This 
>> overhead
>>  can be avoided by handling the upcalls directly in pmd threads (a change 
>> that
>>  has already been proposed by Ryan Wilson)
>> 
>> Also, the following two fixes have been introduced:
>> - In dpdk_free_buf() use rte_pktmbuf_free_seg() instead of rte_mempool_put().
>>  This allows OVS to run properly with CONFIG_RTE_LIBRTE_MBUF_DEBUG DPDK 
>> option
>> - Do not bulk free mbufs in a transmission queue. They may belong to 
>> different
>>  mempools
>> 
> Can you refresh this patch against latest master, I am not able to apply it.
> 
> Thanks,
> Pravin

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

Reply via email to