This series improves ovs-vswitchd performance for short flows about
3X, from about 40,000 flows/s to about 120,000. Tomorrow I will
post more detailed performance analysis.
Ben Pfaff (26):
ofproto-dpif: Keep subfacet "used" times more up-to-date.
ofproto-dpif: Drop unneeded _SAFE from iteration in
handle_flow_miss().
ofproto-dpif: Batch flow uninstallations due to expiration.
dpif: Include TCP flags in "ovs-dpctl dump-flows" output.
netlink-socket: Avoid forcing a reply for final message in a
transaction.
ofproto-dpif: Don't do any accounting at all when removing facets.
ofpbuf: New functions ofpbuf_use_stub() and
ofpbuf_get_uninit_pointer().
ofproto-dpif: Avoid malloc() in common cases for xlate_actions().
dpif-linux: Avoid malloc() in dpif_linux_operate().
ofproto-dpif: Avoid computing flow hash multiple times.
netlink: Postpone choosing sequence numbers until send time.
netlink-socket: Remove unnecessary #include.
netlink-socket: Make caller provide message receive buffers.
ofproto-dpif: Move definition of "struct subfacet" earlier.
ofproto-dpif: Avoid malloc() in common case for allocating subfacets.
dpif: Make caller of dpif_recv() provide buffer space.
ofproto-dpif: Avoid malloc() of "struct flow_miss".
hash: Speed up hash_bytes().
mac-learning: Speed up mac_table_hash().
classifier: Optimize search of "catchall" table.
ofproto-dpif: Make it easier to credit statistics for resubmits.
ofproto-dpif: Avoid malloc() in common case for "execute" operations.
ofproto-dpif: Implement "flow setup governor" to speed up many short
flows.
ofproto-dpif: Avoid calling get_ofp_port() twice in xlate_normal().
ofproto-dpif: Avoid extra flow copy in xlate_actions() if no mirrors.
ofproto-dpif: Avoid extra flow copy in xlate_actions() for unneeded
warnings.
NEWS | 1 +
lib/classifier.c | 21 +-
lib/classifier.h | 7 +-
lib/dpif-linux.c | 208 ++++++---
lib/dpif-netdev.c | 16 +-
lib/dpif-provider.h | 39 +-
lib/dpif.c | 76 ++-
lib/dpif.h | 15 +-
lib/hash.c | 17 +-
lib/mac-learning.c | 5 +-
lib/netlink-notifier.c | 10 +-
lib/netlink-socket.c | 289 ++++++-----
lib/netlink-socket.h | 21 +-
lib/netlink.c | 29 +-
lib/ofpbuf.c | 52 ++-
lib/ofpbuf.h | 7 +-
lib/packets.c | 37 ++
lib/packets.h | 1 +
ofproto/automake.mk | 4 +-
ofproto/ofproto-dpif-governor.c | 186 +++++++
ofproto/ofproto-dpif-governor.h | 53 ++
ofproto/ofproto-dpif.c | 1033 +++++++++++++++++++++++++--------------
tests/test-netflow.c | 30 +-
utilities/nlmon.c | 14 +-
vswitchd/ovs-brcompatd.c | 49 +-
25 files changed, 1475 insertions(+), 745 deletions(-)
create mode 100644 ofproto/ofproto-dpif-governor.c
create mode 100644 ofproto/ofproto-dpif-governor.h
--
1.7.9
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev