[ovs-dev] [PATCH 2/3] ofproto-dpif: Check frags only once.

Ben Pfaff blp at nicira.com
Mon Oct 6 22:17:52 UTC 2014


On Thu, Oct 02, 2014 at 09:20:32AM -0700, Jarno Rajahalme wrote:
> 
> On Sep 26, 2014, at 11:33 AM, Ben Pfaff <blp at nicira.com> wrote:
> 
> > On Wed, Sep 24, 2014 at 11:24:01AM -0700, Jarno Rajahalme wrote:
> >> Earlier I have seen the frags checking suspiciously high in perf
> >> reports, but did not understand why.  Maybe this explains it:
> >> 
> >> Previously we checked frags handling before each flow table lookup.
> >> As the nw_frags field is not writeable, it suffices to check them
> >> once, before the first table lookup.  Also, ofproto-dpif-xlate already
> >> has code for this, but it was run after the first table lookup.  This
> >> check is now done only once, before the first table lookup.
> >> 
> >> Signed-off-by: Jarno Rajahalme <jrajahalme at nicira.com>
> > 
> > By "frags checking suspiciously high in perf reports", do you mean
> > these deleted lines of code in rule_dpif_lookup_in_table() were
> > showing up high in perf reports?
> > 
> > -    if (ofproto->up.frag_handling != OFPC_FRAG_NX_MATCH) {
> > -        /* We always unwildcard dl_type and nw_frag (for IP), so they
> > -         * need not be unwildcarded here. */
> > -
> > -        if (flow->nw_frag & FLOW_NW_FRAG_ANY) {
> > 
> 
> Yes they did. I could make it a bit better just by changing the
> order of the checks, checking flow->nw_frag first, and
> ofproto->ip.frag_handling later, so it must have been a cache miss
> on ofproto->up.frag_handling.
> This was already some months ago, and I have not repeated the tests recently.
> 
> > I'm really surprised to hear that.
> > 
> 
> To be clear, it was in the range of < 1%, so it was not that high,
> but I was surprised to see it there at all. Maybe I should just
> remove the word ?high? from the commit message?

That would help.

Was the improvement about 1% also?

The new code is at least a little harder to understand.  I am trying
to figure out whether the performance improvement outweighs that cost.
What is your opinion?



More information about the dev mailing list