This series makes the classifier use OVS-RCU and thus makes classifier lookups lockless. No performance measurements have been made yet.
Patch 6 ("Use cmap.") has been previously reviewed. Jarno Rajahalme (12): dpif-netdev: Use cmap instead of hmap. ovs-atomic: Use memory_order_relaxed for ovs_refcount. lib/ovs-atomic: Add atomic compare_exchange. ofproto-dpif: Use ovs_refcount_try_ref(). lib/classifier: Remove unused typedef cls_cb_func. lib/classifier: Use cmap. lib/classifier: Simplify iteration with C99 declaration. lib/ovs-rcu: Export ovsrcu_synchronize(). lib/classifier: Stylistic change. lib/classifier: Use internal mutex. lib/classifier: RCUify prefix trie code. lib/classifier: Lockless lookups. lib/classifier.c | 692 +++++++++++++++++++++++++++++--------------- lib/classifier.h | 120 +++++--- lib/dpif-netdev.c | 73 ++--- lib/ovs-atomic-clang.h | 14 + lib/ovs-atomic-gcc4+.h | 23 ++ lib/ovs-atomic-gcc4.7+.h | 14 + lib/ovs-atomic-locked.h | 11 + lib/ovs-atomic-pthreads.h | 10 + lib/ovs-atomic.h | 62 +++- lib/ovs-rcu.c | 3 +- lib/ovs-rcu.h | 4 + ofproto/ofproto-dpif.c | 46 +-- ofproto/ofproto-dpif.h | 9 + ofproto/ofproto-provider.h | 1 + ofproto/ofproto.c | 91 ++---- ofproto/ofproto.h | 3 + tests/test-classifier.c | 130 +++++---- utilities/ovs-ofctl.c | 23 +- 18 files changed, 825 insertions(+), 504 deletions(-) -- 1.7.10.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev