On Thu, Nov 13, 2014 at 11:56:15AM -0800, Jarno Rajahalme wrote:
> Almost all classifier users already exclude concurrent modifications,
> or are single-threaded, hence the classifier internal mutex can be
> removed.  Due to this change, ovs-router.c and tnl-ports.c need new
> mutexes, which are added.
> 
> Suggested-by: Ben Pfaff <b...@nicira.com>
> Signed-off-by: Jarno Rajahalme <jrajaha...@nicira.com>

I am not sure I fully understand the synchronization rules for the
ovs-router code.  At first glance, it seems like rt_entry_delete() and
ovs_router_flush() need external mutual exclusion, e.g. to prevent two
concurrent calls to rt_entry_delete() from deleting the same rule
twice.  But maybe it is safe anyway because classifier_remove() checks
that the rule has not already been deleted and freeing of the rule's
memory is RCU-protected?

I think that ovs_router_flush() leaks the rules that it removes:
doesn't it need to do a postponed rt_entry_free()?

Acked-by: Ben Pfaff <b...@nicira.com>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to