[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