On Nov 14, 2014, at 2:04 PM, Ben Pfaff <b...@nicira.com> wrote: > On Thu, Nov 13, 2014 at 11:56:17AM -0800, Jarno Rajahalme wrote: >> This patch adds a new functions classifier_defer() and >> classifier_publish(), which control when the classifier modifications >> are made available to lookups. By default, all modifications are made >> available to lookups immediately. Modifications made after a >> classifier_defer() call MAY be 'deferred' for later 'publication'. A >> call to classifier_publish() will both publish any deferred >> modifications, and cause subsequent changes to to be published >> immediately. >> >> Currently any deferring is limited to the visibility of the subtable >> vector changes. pvector now processes modifications mostly in a >> working copy, which needs to be explicitly published with >> pvector_publish(). pvector_publish() sorts the working copy and >> removes gaps before publishing it. >> >> This change helps avoiding O(n**2) memory behavior in corner cases, >> where large number of rules with different masks are inserted or >> deleted. >> >> VMware-BZ: #1322017 >> Signed-off-by: Jarno Rajahalme <jrajaha...@nicira.com> >> Summary: > > I don't know of a "Summary:" tag.
Oops, thats from Emacs stgit, it keeps inserting that, and I haven’t yet put in the effort to try to make it not do that. > > I think that pvector.h deserves at least a brief comment describing > the two different copies. > I added this: * Most modifications are internally staged at the 'temp' vector, from which * they can be published at 'impl' by calling pvector_publish(). This saves * unnecessary memory allocations when many changes are done back-to-back. * 'temp' may contain NULL pointers and it may be in unsorted order. It is * sorted before it is published at 'impl', which also removes the NULLs from * the published vector. > Acked-by: Ben Pfaff <b...@nicira.com> Thanks! I’ll push the series momentarily, Jarno _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev