[ovs-dev] [PATCH 1/2] datapath: Mega flow implementation

Andy Zhou azhou at nicira.com
Wed Jun 19 23:23:29 UTC 2013


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 <jesse at 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 <azhou at 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 <jesse at nicira.com> wrote:
> >>
> >> On Tue, Jun 18, 2013 at 4:15 PM, Andy Zhou <azhou at 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 <pshelar at nicira.com>
> >> > Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
> >> > Signed-off-by: Andy Zhou <azhou at 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.
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-dev/attachments/20130619/c3c73300/attachment-0003.html>


More information about the dev mailing list