With the older version of this series I was able to reproduce the problem and this patch appears to fix it.
Acked-by: Daniele Di Proietto <diproiet...@vmware.com> Thanks! On 28/08/2015 06:25, "Alex Wang" <ee07b...@gmail.com> wrote: >In the push_ukey_ops__(), when flow_del operation returns error, the >'struct >stats' passed to the operation function will be set to all zero. And we >should not use it to calculate the delta (i.e. minus the zero stats by the >cached stats causes overflow). > >Even though this should rarely happen, it is still good to make >push_ukey_ops__() just ignore the operation when it fails. > >Signed-off-by: Alex Wang <ee07b...@gmail.com> > >--- >V2: >- new patch. >--- > ofproto/ofproto-dpif-upcall.c | 5 +++++ > 1 file changed, 5 insertions(+) > >diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c >index a0994a2..419fd1a 100644 >--- a/ofproto/ofproto-dpif-upcall.c >+++ b/ofproto/ofproto-dpif-upcall.c >@@ -1906,6 +1906,11 @@ push_ukey_ops__(struct udpif *udpif, struct >ukey_op *ops, size_t n_ops) > continue; > } > >+ if (op->dop.error) { >+ /* flow_del error, 'stats' is unusable. */ >+ continue; >+ } >+ > if (op->ukey) { > ovs_mutex_lock(&op->ukey->mutex); > push->used = MAX(stats->used, op->ukey->stats.used); >-- >1.9.1 > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev