[ovs-dev] [PATCH v3 03/12] flow: Skip invoking expensive count_1bits() with zero input.

Fischetti, Antonio antonio.fischetti at intel.com
Mon Oct 17 09:10:18 UTC 2016


Thanks Jarno, one question below.

Antonio

> -----Original Message-----
> From: dev [mailto:dev-bounces at openvswitch.org] On Behalf Of Jarno
> Rajahalme
> Sent: Friday, October 14, 2016 5:03 PM
> To: Bodireddy, Bhanuprakash <bhanuprakash.bodireddy at intel.com>
> Cc: dev at openvswitch.org
> Subject: Re: [ovs-dev] [PATCH v3 03/12] flow: Skip invoking expensive
> count_1bits() with zero input.
> 
> 
> > On Oct 14, 2016, at 7:37 AM, Bhanuprakash Bodireddy
> <bhanuprakash.bodireddy at intel.com> wrote:
> >
> > This patch checks if trash is non-zero and only then resets the flowmap
> > bit and increment the pointer by set bits as found in trash.
> >
> > Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodireddy at intel.com>
> > Co-authored-by: Antonio Fischetti <antonio.fischetti at intel.com>
> > Signed-off-by: Antonio Fischetti <antonio.fischetti at intel.com>
> > Acked-by: Jarno Rajahalme <jarno at ovn.org>
> > ---
> > lib/flow.h | 15 ++++++++++-----
> > 1 file changed, 10 insertions(+), 5 deletions(-)
> >
> > diff --git a/lib/flow.h b/lib/flow.h
> > index 5a14941..74e75d6 100644
> > --- a/lib/flow.h
> > +++ b/lib/flow.h
> > @@ -614,11 +614,16 @@ mf_get_next_in_map(struct mf_for_each_in_map_aux
> *aux,
> >          * to ‘rm1bit’. */
> >         map_t trash = *fmap & (rm1bit - 1);
> >
> > -        *fmap -= trash;
> > -        /* count_1bits() is fast for systems where speed matters (e.g.,
> > -         * DPDK), so we don't try avoid using it.
> > -         * Advance 'aux->values' to point to the value for 'rm1bit'. */
> > -        aux->values += count_1bits(trash);
> > +        /* Avoid resetting 'fmap' and calling count_1bits() when trash
> is
> > +         * zero. */
> > +        if (trash) {
> > +            *fmap -= trash;
> > +            /* count_1bits() is fast for systems where speed matters
> (e.g.,
> > +             * DPDK), so we don't try avoid using it.
> 
> The comment above is still wrong as we now test ‘trash’ for non-zero
> above.
> 
>   Jarno
[Antonio F] Just to avoid misunderstanding, do you mean we can now entirely remove
the existing comment
    /* count_1bits() is fast for systems where speed....
right?
Because with the latest changes now we do try to avoid using count_1bits(). Is that ok?


> 
> > +             * Advance 'aux->values' to point to the value for 'rm1bit'
> only.
> > +             */
> > +            aux->values += count_1bits(trash);
> > +        }
> >
> >         *value = *aux->values;
> >     } else {
> > --
> > 2.4.11
> >
> > _______________________________________________
> > dev mailing list
> > dev at openvswitch.org
> > http://openvswitch.org/mailman/listinfo/dev
> 
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev


More information about the dev mailing list