[ovs-dev] [thread 00/15] Multithread Open vSwitch.

Ethan Jackson ethan at nicira.com
Thu Aug 8 19:58:19 UTC 2013


Several of these patches are Ben's and are only included in this
series because they're required for some of the later patches.  I've
made no changes to them.

This code won't be ready to merge until Ben's netdev series is in.  On
top of that Alex has a patch out for review which allows us to set the
number of worker threads, that will be nice to have as well.

Ben Pfaff (6):
  ovs-thread: New function xpthread_setspecific().
  ovs-thread: Add support for globally visible per-thread data.
  ovs-thread: New function ovsthread_id_self()
  seq: New module for race-free, pollable, thread-safe sequence number.
  dpif-netdev: Avoid races on queue and port changes using seq objects.
  ofproto-dpif-xlate: Avoid MAC learning write lock on fast path.

Ethan Jackson (9):
  ofproto-dpif-xlate: Fix rare segfault on switch exit.
  ovs-thread: New function xpthread_join().
  ofproto: Lock hard_timeout and idle_timeout of struct rule.
  ofproto-dpif: Lock the expirable list.
  ofproto-dpif: Hide rule_dpif_miss_rule().
  classifier: Make use of the classifier thread safe.
  ofproto-dpif: Lock rules to prevent eviction.
  ofproto-dpif-xlate: Require a lock for reconfiguration.
  ofproto-dpif: Implement multi-threaded miss handling.

 lib/automake.mk               |    2 +
 lib/classifier.c              |    3 +
 lib/classifier.h              |   55 ++-
 lib/dpif-netdev.c             |   42 ++-
 lib/ovs-thread.c              |   36 +-
 lib/ovs-thread.h              |  117 +++++-
 lib/poll-loop.c               |    5 +-
 lib/random.c                  |    2 +-
 lib/seq.c                     |  255 +++++++++++++
 lib/seq.h                     |   89 +++++
 lib/timeval.c                 |    2 +-
 lib/util.c                    |    4 +-
 lib/vlog.c                    |    2 +-
 ofproto/automake.mk           |    2 +
 ofproto/connmgr.c             |    8 +-
 ofproto/ofproto-dpif-upcall.c |  820 +++++++++++++++++++++++++++++++++++++++++
 ofproto/ofproto-dpif-upcall.h |  110 ++++++
 ofproto/ofproto-dpif-xlate.c  |  205 +++++++----
 ofproto/ofproto-dpif-xlate.h  |   34 +-
 ofproto/ofproto-dpif.c        |  800 +++++++++++-----------------------------
 ofproto/ofproto-dpif.h        |   46 ++-
 ofproto/ofproto-provider.h    |   23 +-
 ofproto/ofproto.c             |  176 +++++++--
 tests/test-classifier.c       |   19 +-
 utilities/ovs-ofctl.c         |    4 +
 25 files changed, 2092 insertions(+), 769 deletions(-)
 create mode 100644 lib/seq.c
 create mode 100644 lib/seq.h
 create mode 100644 ofproto/ofproto-dpif-upcall.c
 create mode 100644 ofproto/ofproto-dpif-upcall.h

-- 
1.7.9.5




More information about the dev mailing list