When table is destroyed, there is really no need to keep track of the mask's reference counting -- The masks will have to be destroyed any ways.
During run time, the mask_list deletion needs to be protected by the ovs_lock, But we should not require ovs_lock to be held during table destroy. right? So it seems we will have two ways of doing ovs_flow_free() any ways, I will continue to think about how to merge these two cases. Please let me know if you have any suggestions. --andy On Wed, Jun 19, 2013 at 4:09 PM, Jesse Gross <je...@nicira.com> wrote: > What is the reason need for iterating through the mask list itself > when destroying the table instead of doing it as the flows are > deleted? Doing it that way would both avoid the need to have multiple > list deletion functions and the differences between the RCU and > non-RCU versions of ovs_flow_free(). > > One issue that comes to mind is the RCU barrier when the module is > unloaded but there are other ways to fix that. > > On Wed, Jun 19, 2013 at 2:09 PM, Andy Zhou <az...@nicira.com> wrote: > > Jesse, > > > > The following patch is an incremental patch on top of yours. > > -- Fix a few small bugs introduced by the cleanup patch. > > -- Make mask list per table. > > > > I believe this implementation will address the rcu lock issues we > discussed > > off line. > > > > Would you please review? > > > > Thanks, > > > > --andy > > > > On Tue, Jun 18, 2013 at 4:35 PM, Jesse Gross <je...@nicira.com> wrote: > >> > >> On Tue, Jun 18, 2013 at 4:15 PM, Andy Zhou <az...@nicira.com> wrote: > >> > Add wildcarded flow support in kernel datapath. > >> > > >> > Wildcarded flow can improve OVS flow set up performance by avoid > sending > >> > matching new flows to the user space program. The exact performance > >> > boost > >> > will largely dependent on wildcarded flow hit rate. > >> > > >> > In case all new flows hits wildcard flows, the flow set up rate is > >> > within 5% of that of linux bridge module. > >> > > >> > Pravin has made significant contributions to this patch. Including API > >> > clean ups and bug fixes. > >> > > >> > Co-authored-by: Pravin B Shelar <pshe...@nicira.com> > >> > Signed-off-by: Pravin B Shelar <pshe...@nicira.com> > >> > Signed-off-by: Andy Zhou <az...@nicira.com> > >> > >> I made some incremental changes, can you take a look to see if they > >> seem reasonable to you? > >> > >> Here are the main blocks: > >> - Additional interface documentation. > >> - Fix memory leak when installing a new flow if there is an > >> allocation failure for the mask. > >> - Require Ethernet addresses to be present in the key, as before. > >> - Make SNAP handling a little more integrated with the rest of the > >> parsing and validation code. > >> - Make ovs_flow_free() and ovs_deferred_flow_free() have exactly the > >> same behavior, just with the addition of RCU, to avoid possible > >> confusion. > >> - Return errors directly rather than through an intermediate variable > >> in ovs_flow_extract() and children. > >> - Enforce an exact match for the outer EtherType for vlan packets, > >> similar to what we do for other protocols. > >> - Miscellaneous style fixes. > > > > >
_______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev