[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