From: Gage Eads Date: Tue, 27 Aug 2019 21:34:59 +0000 (-0500) Subject: event/sw: fix xstats reset value X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=d02c470c87976def34bae0307736ecb9c8cac9d8;p=dpdk.git event/sw: fix xstats reset value The sw PMD implements xstats reset by having the xstat get operations return a value to the statistic's value at the last reset. The value at the last reset is maintained in the per-xstat reset_value field, but the PMD was setting reset_value = current - reset_value instead of reset_value = current. Fixes: c1ad03df7ad5 ("event/sw: support xstats") Cc: stable@dpdk.org Signed-off-by: Gage Eads Acked-by: Harry van Haaren --- diff --git a/drivers/event/sw/sw_evdev_xstats.c b/drivers/event/sw/sw_evdev_xstats.c index 7a6caa64d8..90664903bf 100644 --- a/drivers/event/sw/sw_evdev_xstats.c +++ b/drivers/event/sw/sw_evdev_xstats.c @@ -491,7 +491,7 @@ sw_xstats_update(struct sw_evdev *sw, enum rte_event_dev_xstats_mode mode, values[xidx] = val; if (xs->reset_allowed && reset) - xs->reset_value = val; + xs->reset_value += val; xidx++; } @@ -544,8 +544,7 @@ sw_xstats_reset_range(struct sw_evdev *sw, uint32_t start, uint32_t num) if (!xs->reset_allowed) continue; - uint64_t val = xs->fn(sw, xs->obj_idx, xs->stat, xs->extra_arg) - - xs->reset_value; + uint64_t val = xs->fn(sw, xs->obj_idx, xs->stat, xs->extra_arg); xs->reset_value = val; } }