event/sw: fix xstats reset value assignment bug

Message ID 20190827213459.23441-1-gage.eads@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Jerin Jacob
Headers
Series event/sw: fix xstats reset value assignment bug |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-dpdk_compile_ovs success Compile Testing PASS
ci/iol-dpdk_compile_spdk success Compile Testing PASS
ci/iol-dpdk_compile success Compile Testing PASS
ci/intel-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/mellanox-Performance success Performance Testing PASS

Commit Message

Eads, Gage Aug. 27, 2019, 9:34 p.m. UTC
  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 <gage.eads@intel.com>
---
 drivers/event/sw/sw_evdev_xstats.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
  

Comments

Jerin Jacob Sept. 13, 2019, 10:30 a.m. UTC | #1
On Wed, Aug 28, 2019 at 3:06 AM Gage Eads <gage.eads@intel.com> wrote:
>
> 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 <gage.eads@intel.com>

Harry,

Could you review this patch?



> ---
>  drivers/event/sw/sw_evdev_xstats.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/event/sw/sw_evdev_xstats.c b/drivers/event/sw/sw_evdev_xstats.c
> index 7a6caa64d..90664903b 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;
>         }
>  }
> --
> 2.13.6
>
  
Van Haaren, Harry Sept. 13, 2019, 10:31 a.m. UTC | #2
> -----Original Message-----
> From: Jerin Jacob [mailto:jerinjacobk@gmail.com]
> Sent: Friday, September 13, 2019 11:30 AM
> To: Eads, Gage <gage.eads@intel.com>
> Cc: dev@dpdk.org; Richardson, Bruce <bruce.richardson@intel.com>; Van Haaren,
> Harry <harry.van.haaren@intel.com>; stable@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] event/sw: fix xstats reset value assignment
> bug
> 
> On Wed, Aug 28, 2019 at 3:06 AM Gage Eads <gage.eads@intel.com> wrote:
> >
> > 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 <gage.eads@intel.com>
> 
> Harry,
> 
> Could you review this patch?

Yes - thanks for the ping. It's on my TODO, will prioritize.
  
Van Haaren, Harry Sept. 23, 2019, 2:17 p.m. UTC | #3
> -----Original Message-----
> From: Jerin Jacob [mailto:jerinjacobk@gmail.com]
> Sent: Friday, September 13, 2019 11:30 AM
> To: Eads, Gage <gage.eads@intel.com>
> Cc: dev@dpdk.org; Richardson, Bruce <bruce.richardson@intel.com>; Van Haaren,
> Harry <harry.van.haaren@intel.com>; stable@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] event/sw: fix xstats reset value assignment
> bug
> 
> On Wed, Aug 28, 2019 at 3:06 AM Gage Eads <gage.eads@intel.com> wrote:
> >
> > 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 <gage.eads@intel.com>

Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
  
Jerin Jacob Sept. 23, 2019, 3:51 p.m. UTC | #4
On Mon, Sep 23, 2019 at 7:47 PM Van Haaren, Harry
<harry.van.haaren@intel.com> wrote:
>
> > -----Original Message-----
> > From: Jerin Jacob [mailto:jerinjacobk@gmail.com]
> > Sent: Friday, September 13, 2019 11:30 AM
> > To: Eads, Gage <gage.eads@intel.com>
> > Cc: dev@dpdk.org; Richardson, Bruce <bruce.richardson@intel.com>; Van Haaren,
> > Harry <harry.van.haaren@intel.com>; stable@dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH] event/sw: fix xstats reset value assignment
> > bug
> >
> > On Wed, Aug 28, 2019 at 3:06 AM Gage Eads <gage.eads@intel.com> wrote:
> > >
> > > 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 <gage.eads@intel.com>
>
> Acked-by: Harry van Haaren <harry.van.haaren@intel.com>

Applied to dpdk-next-eventdev/master. Thanks.



>
>
  

Patch

diff --git a/drivers/event/sw/sw_evdev_xstats.c b/drivers/event/sw/sw_evdev_xstats.c
index 7a6caa64d..90664903b 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;
 	}
 }