> On Oct 28, 2014, at 4:36 PM, Ben Pfaff <b...@nicira.com> wrote: > >> On Fri, Oct 24, 2014 at 01:36:40PM -0700, Jarno Rajahalme wrote: >> Previously, accurate iteration required writers to be excluded during >> iteration. This patch changes the structure of the classifier by >> moving the list of rules from struct cls_match to struct cls_subtable. >> The list element is also moved from the struct cls_match to struct >> cls_rule, which makes iteration more straightforward, and allows the >> iterators to remain ignorant of the internals of the cls_match. These >> changes allow iteration of rules in the classifier by traversing the >> RCU-friendly subtables vector, and the rculist of rules in each >> subtable. Classifier modifications may be performed concurrently, but >> whether or not the concurrent iterator sees those changes depends on >> the timing of change. This is similar to having writers excluded by a >> mutex, where visibility of changes depends on the timing of mutex >> acquisition. >> >> The subtable's rculist also allows to make >> classifier_find_rule_exactly() and classifier_rule_overlaps() >> lockless. >> >> Signed-off-by: Jarno Rajahalme <jrajaha...@nicira.com> > > I *think* I follow what's going on here, but just to be sure, let me > try to explain it. After this patch, the subtable has a list of every > rule in the subtable, as 'rules_list'. The rules in the list are in > no particular order, except that rules with identical match criteria > are in subsequent positions. Is that correct?
Yes :-) Jarno _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev