[ovs-dev] [PATCH] xlate: Skip recirculation for output and set actions

Ben Pfaff blp at ovn.org
Tue May 24 03:56:46 UTC 2016


On Tue, May 24, 2016 at 12:43:59PM +0900, Simon Horman wrote:
> Hi Ben,
> 
> On Tue, Apr 12, 2016 at 12:39:51PM -0700, Ben Pfaff wrote:
> > On Mon, Apr 04, 2016 at 05:16:35PM +0900, Simon Horman wrote:
> > > Until 8bf009bf8ab4 ("xlate: Always recirculate after an MPLS POP to a
> > > non-MPLS ethertype.") the translation code took some care to only
> > > recirculate as a result of a pop_mpls action if necessary. This was
> > > implemented using per-action checks and resulted in some maintenance
> > > burden.
> > > 
> > > Unfortunately recirculation is a relatively expensive operation and a
> > > performance degradation of up to 35% has been observed with the above
> > > mentioned patch applied for the arguably common case of:
> > > 
> > > 	pop_mpls,set(l2 field),output
> > > 
> > > This patch attempts to strike a balance between performance and
> > > maintainability by special casing set and output actions such
> > > that recirculation may be avoided.
> > > 
> > > This partially reverts the above mentioned commit. In particular most
> > > of the C code changes outside of do_xlate_actions().
> > > 
> > > Signed-off-by: Simon Horman <simon.horman at netronome.com>
> > > ---
> > > * Lightly tested using test-suite portion of this patch
> > 
> > I think that recirculation is necessary for output to patch ports.
> 
> I believe this is already handled in my patch as recirculation
> is triggered in xlate_table_action().
> 
> As part of the incremental patch below I have included a test
> to exercise this.
> 
> > I think that recirculation is necessary for output to a group that
> > chooses a bucket based on L3+ fields, even if the actions in the group
> > do not otherwise require recirculation.
> 
> Thanks, I missed that one. I think that the best thing to do at
> this time is to trigger recirculation for select groups - other groups
> don't access fields as you describe and should already be handled correctly.
> 
> The incremental patch below updates the code to do this as
> well as providing a test to exercise this case.

Thanks.  Will you submit the squashed patch, then?



More information about the dev mailing list