[ovs-dev] [threaded-learning v2 00/25] execute "learn" actions in threads

Ben Pfaff blp at nicira.com
Thu Sep 12 07:39:12 UTC 2013


v1->v2:
  - Initial two patches dropped because they were applied.
  - New patches "ofproto: Reduce number of "collect" functions taking lots
    of parameters." and "ofproto: Eliminate 'ofproto_node' member from
    struct rule." to fix a crash that Ethan reported (off-list) because
    flow_stats and aggregate_stats would call into translation via
    rule_get_stats.  This also required changes to "ofproto: Add global
    locking around flow table changes." to adjust lock holding times.
  - Applied lots of comments from Ethan, biggest changes in "guarded-list:
    New data structure for thread-safe queue."
  - Added lots of Acked-bys.

Ben Pfaff (25):
  ofproto: Factor code out of collect_rules_{loose,strict} into new
    helper.
  ofproto: Reduce number of "collect" functions taking lots of
    parameters.
  ofproto: Eliminate 'ofproto_node' member from struct rule.
  ofproto: Correct comments.
  ofproto: Avoid gratuitous memory allocation and free.
  ofproto-dpif: Remove vestigial "clogged" feature.
  ofproto: Merge ofproto_rule_delete() and ofproto_delete_rule().
  ofproto: Move function find_meter() into ofpacts as
    ofpacts_get_meter().
  ofproto: Remove soon-to-be-invalid optimizations.
  ofproto: Break actions out of rule into new rule_actions structure.
  ofproto: Add a ref_count to "struct rule" to protect it from being
    freed.
  guarded-list: New data structure for thread-safe queue.
  classifier: Allow CLS_CURSOR_FOR_EACH to use a const-qualified
    iterator.
  ofproto: Move rule_execute() out of ofopgroup_complete().
  ofproto: Drop 'expirable_mutex' in favor of new global
    'ofproto_mutex'.
  ofproto: Protect index by cookie with ofproto_mutex.
  ofproto: Replace rwlock in struct rule by a mutex.
  ofproto: Remove ->timeout_mutex from struct rule (just use ->mutex).
  ofproto: Make some functions for rules private to ofproto.c.
  ofproto: Mark immutable members of struct rule 'const'.
  ofproto: New helper any_pending_ops().
  ofproto: Refactor eviction cases to use common code.
  ofproto: Add global locking around flow table changes.
  ofproto: Remove redundant cls parameter from a few functions.
  ofproto-dpif: Move "learn" actions into individual threads.

 lib/automake.mk               |    2 +
 lib/classifier.c              |    3 +-
 lib/classifier.h              |    7 +-
 lib/guarded-list.c            |   97 +++
 lib/guarded-list.h            |   41 ++
 lib/ofp-actions.c             |   24 +
 lib/ofp-actions.h             |    1 +
 ofproto/connmgr.c             |   15 +-
 ofproto/connmgr.h             |   10 +-
 ofproto/fail-open.c           |    3 +-
 ofproto/ofproto-dpif-upcall.c |  198 ++----
 ofproto/ofproto-dpif-upcall.h |    6 +-
 ofproto/ofproto-dpif-xlate.c  |   45 +-
 ofproto/ofproto-dpif.c        |  278 +++-----
 ofproto/ofproto-dpif.h        |   16 +-
 ofproto/ofproto-provider.h    |  317 ++++++---
 ofproto/ofproto.c             | 1413 ++++++++++++++++++++++++++---------------
 ofproto/ofproto.h             |    2 +-
 18 files changed, 1519 insertions(+), 959 deletions(-)
 create mode 100644 lib/guarded-list.c
 create mode 100644 lib/guarded-list.h

-- 
1.7.10.4




More information about the dev mailing list