[ovs-dev] [PATCH] ofproto: Fix statistics of datapath operations.

Fabrizio D'Angelo fdangelo at redhat.com
Wed Oct 14 19:58:56 UTC 2020


I believe this is the commit that introduced the issue:
13bb6ed00c10ae46b3f9b92d05edb41398714166


On Wed, Oct 14, 2020 at 9:19 AM Stokes, Ian <ian.stokes at intel.com> wrote:
>
> > If 'stats->n_packets' is less than 'op->ukey->stats.n_packets',
> > the calculation result will be wrong.
> > 'stats->n_bytes' is the same.
> >
>
> Thanks for the patch, seems like a reasonable change, also I think this could be backported as far as OVS 2.6.
> One thing is could do with a fixes tag to reference commit that introduced the issue.
>
> Acked-by: Ian Stokes <ian.stokes at intel.com>
>
> > Signed-off-by: zhaozhanxu <zhaozhanxu at 163.com>
> > ---
> >  ofproto/ofproto-dpif-upcall.c | 8 ++++++--
> >  1 file changed, 6 insertions(+), 2 deletions(-)
> >
> > diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c
> > index 5e08ef10d..80678f843 100644
> > --- a/ofproto/ofproto-dpif-upcall.c
> > +++ b/ofproto/ofproto-dpif-upcall.c
> > @@ -2385,8 +2385,12 @@ push_dp_ops(struct udpif *udpif, struct ukey_op
> > *ops, size_t n_ops)
> >              transition_ukey(op->ukey, UKEY_EVICTED);
> >              push->used = MAX(stats->used, op->ukey->stats.used);
> >              push->tcp_flags = stats->tcp_flags | op->ukey->stats.tcp_flags;
> > -            push->n_packets = stats->n_packets - op->ukey->stats.n_packets;
> > -            push->n_bytes = stats->n_bytes - op->ukey->stats.n_bytes;
> > +            push->n_packets = (stats->n_packets > op->ukey->stats.n_packets
> > +                               ? stats->n_packets - op->ukey->stats.n_packets
> > +                               : 0);
> > +            push->n_bytes = (stats->n_bytes > op->ukey->stats.n_bytes
> > +                             ? stats->n_bytes - op->ukey->stats.n_bytes
> > +                             : 0);
> >              ovs_mutex_unlock(&op->ukey->mutex);
> >          } else {
> >              push = stats;
> > --
> > 2.20.1
> >
> >
> > _______________________________________________
> > dev mailing list
> > dev at openvswitch.org
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>



More information about the dev mailing list