summaryrefslogtreecommitdiffstats
path: root/net/core/Makefile
diff options
context:
space:
mode:
authorPaolo Abeni <pabeni@redhat.com>2016-02-12 15:43:53 +0100
committerDavid S. Miller <davem@davemloft.net>2016-02-16 20:21:48 -0500
commit911362c70df5b766c243dc297fadeaced786ffd8 (patch)
tree82d2783ae0067d762f88f9cbb51b5a15eb7d339b /net/core/Makefile
parent64f63d59ba782ec317fca150895ef8dc6ddbff4b (diff)
downloadlinux-911362c70df5b766c243dc297fadeaced786ffd8.tar.gz
linux-911362c70df5b766c243dc297fadeaced786ffd8.tar.bz2
linux-911362c70df5b766c243dc297fadeaced786ffd8.zip
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@redhat.com> Suggested-and-acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/Makefile')
-rw-r--r--net/core/Makefile1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/core/Makefile b/net/core/Makefile
index 0b835de04de3..7a8fb8aef992 100644
--- a/net/core/Makefile
+++ b/net/core/Makefile
@@ -24,3 +24,4 @@ obj-$(CONFIG_NET_PTP_CLASSIFY) += ptp_classifier.o
obj-$(CONFIG_CGROUP_NET_PRIO) += netprio_cgroup.o
obj-$(CONFIG_CGROUP_NET_CLASSID) += netclassid_cgroup.o
obj-$(CONFIG_LWTUNNEL) += lwtunnel.o
+obj-$(CONFIG_DST_CACHE) += dst_cache.o