> 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

Reply via email to