On Fri, Jul 8, 2016 at 9:19 AM, Pravin B Shelar <[email protected]> wrote: > This backports dst-cache implementation from upstream implementation. > > commit 911362c70df5b766c243dc297fadeaced786ffd8 > Author: Paolo Abeni <[email protected]> > > 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 <[email protected]> > Suggested-and-acked-by: Hannes Frederic Sowa <[email protected]> > Signed-off-by: David S. Miller <[email protected]> > > Signed-off-by: Pravin B Shelar <[email protected]>
Acked-by: Jesse Gross <[email protected]> _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
