[ovs-dev] [PATCH] dpif: allow adding ukeys for same flow by different pmds
i.maximets at samsung.com
Fri Aug 7 09:26:54 UTC 2015
Ok. I think, it will be better. I'll prepare new version.
On 06.08.2015 23:32, Joe Stringer wrote:
> On 6 August 2015 at 00:54, Ilya Maximets <i.maximets at samsung.com> wrote:
>> 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