[ovs-dev] [PATCH] dpif: allow adding ukeys for same flow by different pmds

Joe Stringer joestringer at nicira.com
Thu Aug 6 20:32:49 UTC 2015

On 6 August 2015 at 00:54, Ilya Maximets <i.maximets at samsung.com> wrote:
> ping.
> On 30.07.2015 18:29, Ilya Maximets wrote:
>> In multiqueue mode several pmd threads may process one
>> port, but different queues. Flow doesn't depend on queue.
>> So, while miss upcall processing, all threads (except first
>> for that port) will receive error = ENOSPC due to
>> ukey_install failure. Therefore they will not add the flow
>> to flow_table and will not insert it to exact match cache.
>> As a result all threads (except first for that port) will
>> always execute a miss.
>> Fix that by comparing ukeys not only by ufids but also
>> by pmd_ids.
>> Signed-off-by: Ilya Maximets <i.maximets at samsung.com>

Apologies for the delay. Did you consider amending get_ufid_hash() to
take a pmd_id instead, mixing the id in with the bits from the ufid?
This should decrease ukey iteration as there should be less ukeys with
the same hash in the ukey_maps (same hash -> map lookup for hash, then
linked list N_PMD_THREADS long).

More information about the dev mailing list