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
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to