netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next v2 0/7] net: unify dst caching for tunnel devices
@ 2016-02-12 14:43 Paolo Abeni
  2016-02-12 14:43 ` [PATCH net-next v2 1/7] net: add dst_cache support Paolo Abeni
                   ` (7 more replies)
  0 siblings, 8 replies; 11+ messages in thread
From: Paolo Abeni @ 2016-02-12 14:43 UTC (permalink / raw)
  To: netdev
  Cc: David S. Miller, Thomas Graf, Pravin B Shelar, Jiri Benc,
	Hannes Frederic Sowa, Tom Herbert, Sergei Shtylyov

This patch series try to unify the dst cache implementations currently
present in the kernel, namely in ip_tunnel.c and ip6_tunnel.c, introducing a
new generic implementation, replacing the existing ones, and then using
the new implementation in other tunnel devices which currently lack it.

The new dst implementation is compiled, as built-in, only if any device using
it is enabled.

Caching the dst for the tunnel remote address gives small, but measurable,
performance improvement when tunneling over ipv4 (in the 2%-4% range) and
significant ones when tunneling over ipv6 (roughly 60% when no
fragmentation/segmentation take place and the tunnel local address
is not specified).

v2:
- move the vxlan dst_cache usage inside the device lookup functions
- fix usage after free for lwt tunnel moving the dst cache storage inside
  the dst_metadata,
- sparse codying style cleanup

Paolo Abeni (7):
  net: add dst_cache support
  net: replace dst_cache ip6_tunnel implementation with the generic one
  ip_tunnel: replace dst_cache with generic implementation
  net: use dst_cache for vxlan device
  net: add dst_cache to ovs vxlan lwtunnel
  geneve: add dst caching support
  net/ipv4: add dst cache support for gre lwtunnels

 drivers/net/geneve.c           |  39 ++++++++++
 drivers/net/vxlan.c            |  56 ++++++++++++--
 include/net/dst_cache.h        |  97 ++++++++++++++++++++++++
 include/net/dst_metadata.h     |   1 +
 include/net/ip6_tunnel.h       |  14 +---
 include/net/ip_tunnels.h       |  12 ++-
 include/net/vxlan.h            |   1 +
 net/Kconfig                    |   4 +
 net/core/Makefile              |   1 +
 net/core/dst.c                 |  10 ++-
 net/core/dst_cache.c           | 168 +++++++++++++++++++++++++++++++++++++++++
 net/ipv4/Kconfig               |   1 +
 net/ipv4/ip_gre.c              |  13 +++-
 net/ipv4/ip_tunnel.c           |  78 ++++---------------
 net/ipv6/Kconfig               |   1 +
 net/ipv6/ip6_gre.c             |  12 +--
 net/ipv6/ip6_tunnel.c          | 103 ++-----------------------
 net/ipv6/ip6_vti.c             |   2 +-
 net/ipv6/sit.c                 |  17 +++--
 net/openvswitch/Kconfig        |   1 +
 net/openvswitch/flow_netlink.c |   6 ++
 21 files changed, 429 insertions(+), 208 deletions(-)
 create mode 100644 include/net/dst_cache.h
 create mode 100644 net/core/dst_cache.c

-- 
1.8.3.1

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2016-04-28  7:19 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-12 14:43 [PATCH net-next v2 0/7] net: unify dst caching for tunnel devices Paolo Abeni
2016-02-12 14:43 ` [PATCH net-next v2 1/7] net: add dst_cache support Paolo Abeni
2016-02-12 14:43 ` [PATCH net-next v2 2/7] net: replace dst_cache ip6_tunnel implementation with the generic one Paolo Abeni
2016-02-12 14:43 ` [PATCH net-next v2 3/7] ip_tunnel: replace dst_cache with generic implementation Paolo Abeni
2016-02-12 14:43 ` [PATCH net-next v2 4/7] net: use dst_cache for vxlan device Paolo Abeni
2016-02-12 14:43 ` [PATCH net-next v2 5/7] net: add dst_cache to ovs vxlan lwtunnel Paolo Abeni
2016-02-12 14:43 ` [PATCH net-next v2 6/7] geneve: add dst caching support Paolo Abeni
2016-02-12 14:43 ` [PATCH net-next v2 7/7] net/ipv4: add dst cache support for gre lwtunnels Paolo Abeni
2016-02-17  1:22 ` [PATCH net-next v2 0/7] net: unify dst caching for tunnel devices David Miller
2016-04-27 23:31   ` Eric Dumazet
2016-04-28  7:18     ` Paolo Abeni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).