[ovs-discuss] Where are the hashes calculated please?

Tony van der Peet tony.vanderpeet at gmail.com
Tue Sep 22 06:38:56 UTC 2015


OK, problem solved. Should have known it would be my code. The netdev
is our own and on a previous update from upstream I missed the fact
that the packet hash has to be initialised in the rxq_recv routine.
All good now.

Tony

On Tue, Sep 22, 2015 at 5:25 PM, Tony van der Peet
<tony.vanderpeet at gmail.com> wrote:
> OK, hold that thought, I think I just worked it out for myself! Looks
> like there is a calculation in emc_processing, which implies that the
> hashes are already calculated? It's too late at the end of a long day.
> Still something not quite right though, so I'll keep looking - any
> further advice appreciated.
>
> Tony
>
> On Tue, Sep 22, 2015 at 5:18 PM, Tony van der Peet
> <tony.vanderpeet at gmail.com> wrote:
>> In dpif-netdev.c, line 3264 (master branch), appears this comment (the
>> routine is fast_path_processing).
>>
>> /* Key length is needed in all the cases, hash computed on demand. */
>>
>> I have inspected this code quite a bit, and can't find where the
>> hashes are calculated. In particular, this appears to cause a memory
>> leak in associated emc code (flows with an extra reference on them are
>> not being deleted). This is because the hash is not calculated when
>> emc_insert is called.
>>
>> Could someone please point out where the hashes are calculated, or
>> confirm that there might be an issue here? Or that my understanding is
>> incorrect and we don't need those hash values?
>>
>> If there is a fix required, I have a reliable test that shows up this
>> issue, so will be happy to test it out.
>>
>> Thanks
>> Tony



More information about the discuss mailing list