[ovs-dev] [PATCH v2 04/24] datapath: backport: net: add dst_cache support

Jesse Gross jesse at kernel.org
Thu Jun 30 16:31:20 UTC 2016


On Thu, Jun 30, 2016 at 1:06 AM, Pravin B Shelar <pshelar at ovn.org> wrote:
> This backports dst-cache implementation from upstream implementation.
>
>     commit 911362c70df5b766c243dc297fadeaced786ffd8
>     Author: Paolo Abeni <pabeni at redhat.com>
>
>     net: add dst_cache support
>     This patch add a generic, lockless dst cache implementation.
>     The need for lock is avoided updating the dst cache fields
>     only in per cpu scope, and requiring that the cache manipulation
>     functions are invoked with the local bh disabled.
>
>     The refresh_ts and reset_ts fields are used to ensure the cache
>     consistency in case of cuncurrent cache update (dst_cache_set*) and
>     reset operation (dst_cache_reset).
>
>     Consider the following scenario:
>
>     CPU1:                                       CPU2:
>       <cache lookup with emtpy cache: it fails>
>       <get dst via uncached route lookup>
>                                                 <related configuration changes>
>                                                 dst_cache_reset()
>       dst_cache_set()
>
>     The dst entry set passed to dst_cache_set() should not be used
>     for later dst cache lookup, because it's obtained using old
>     configuration values.
>
>     Since the refresh_ts is updated only on dst_cache lookup, the
>     cached value in the above scenario will be discarded on the next
>     lookup.
>
>     Signed-off-by: Paolo Abeni <pabeni at redhat.com>
>     Suggested-and-acked-by: Hannes Frederic Sowa <hannes at stressinduktion.org>
>     Signed-off-by: David S. Miller <davem at davemloft.net>
>
> Signed-off-by: Pravin B Shelar <pshelar at ovn.org>

Acked-by: Jesse Gross <jesse at kernel.org>



More information about the dev mailing list