test/ring_perf: fix error statistics in bulk enq/dequeue

Message ID 20200608055846.46971-1-feifei.wang2@arm.com (mailing list archive)
State Accepted, archived
Delegated to: David Marchand
Headers
Series test/ring_perf: fix error statistics in bulk enq/dequeue |

Checks

Context Check Description
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-nxp-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-testing warning Testing issues
ci/travis-robot success Travis build: passed
ci/checkpatch success coding style OK

Commit Message

Feifei Wang June 8, 2020, 5:58 a.m. UTC
  In size 32 bulk ring enq/dequeue performance test, the "Total count"
statistics is incorrect. For example, running the test on lcore 25 and
lcore 26, the output is as follows:

The test command:
$sudo ./arm64-armv8a-linuxapp-gcc/app/test -l 25-26
RTE>>ring_perf_autotest

Bulk enq/dequeue count on size 32
Core [25] count = 288268
Core [26] count = 288281
Total count (size: 32): 1066323

Fixed it by reset the counter at the beginning of each loop. The
revised output is as follows:

Bulk enq/dequeue count on size 32
Core [25] count = 285643
Core [26] count = 285688
Total count (size: 32): 571331

Fixes: 759cf9b5632c ("test/ring: enhance mp/mc coverage")
Cc: stable@dpdk.org

Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
---
 app/test/test_ring_perf.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Comments

Ananyev, Konstantin June 9, 2020, 11:25 a.m. UTC | #1
> 
> In size 32 bulk ring enq/dequeue performance test, the "Total count"
> statistics is incorrect. For example, running the test on lcore 25 and
> lcore 26, the output is as follows:
> 
> The test command:
> $sudo ./arm64-armv8a-linuxapp-gcc/app/test -l 25-26
> RTE>>ring_perf_autotest
> 
> Bulk enq/dequeue count on size 32
> Core [25] count = 288268
> Core [26] count = 288281
> Total count (size: 32): 1066323
> 
> Fixed it by reset the counter at the beginning of each loop. The
> revised output is as follows:
> 
> Bulk enq/dequeue count on size 32
> Core [25] count = 285643
> Core [26] count = 285688
> Total count (size: 32): 571331
> 
> Fixes: 759cf9b5632c ("test/ring: enhance mp/mc coverage")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> Reviewed-by: Phil Yang <phil.yang@arm.com>
> ---
>  app/test/test_ring_perf.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/app/test/test_ring_perf.c b/app/test/test_ring_perf.c
> index ee21faf71..ac9bf5608 100644
> --- a/app/test/test_ring_perf.c
> +++ b/app/test/test_ring_perf.c
> @@ -380,7 +380,7 @@ load_loop_fn_16B(void *p)
>  static int
>  run_on_all_cores(struct rte_ring *r, const int esize)
>  {
> -	uint64_t total = 0;
> +	uint64_t total;
>  	struct thread_params param;
>  	lcore_function_t *lcore_f;
>  	unsigned int i, c;
> @@ -392,6 +392,7 @@ run_on_all_cores(struct rte_ring *r, const int esize)
> 
>  	memset(&param, 0, sizeof(struct thread_params));
>  	for (i = 0; i < RTE_DIM(bulk_sizes); i++) {
> +		total = 0;
>  		printf("\nBulk enq/dequeue count on size %u\n", bulk_sizes[i]);
>  		param.size = bulk_sizes[i];
>  		param.r = r;
> --

Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

> 2.17.1
  
David Marchand July 1, 2020, 8:42 a.m. UTC | #2
On Tue, Jun 9, 2020 at 1:25 PM Ananyev, Konstantin
<konstantin.ananyev@intel.com> wrote:
> > In size 32 bulk ring enq/dequeue performance test, the "Total count"
> > statistics is incorrect. For example, running the test on lcore 25 and
> > lcore 26, the output is as follows:
> >
> > The test command:
> > $sudo ./arm64-armv8a-linuxapp-gcc/app/test -l 25-26
> > RTE>>ring_perf_autotest
> >
> > Bulk enq/dequeue count on size 32
> > Core [25] count = 288268
> > Core [26] count = 288281
> > Total count (size: 32): 1066323
> >
> > Fixed it by reset the counter at the beginning of each loop. The
> > revised output is as follows:
> >
> > Bulk enq/dequeue count on size 32
> > Core [25] count = 285643
> > Core [26] count = 285688
> > Total count (size: 32): 571331
> >
> > Fixes: 759cf9b5632c ("test/ring: enhance mp/mc coverage")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
> > Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > Reviewed-by: Phil Yang <phil.yang@arm.com>
> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

Applied, thanks.
  

Patch

diff --git a/app/test/test_ring_perf.c b/app/test/test_ring_perf.c
index ee21faf71..ac9bf5608 100644
--- a/app/test/test_ring_perf.c
+++ b/app/test/test_ring_perf.c
@@ -380,7 +380,7 @@  load_loop_fn_16B(void *p)
 static int
 run_on_all_cores(struct rte_ring *r, const int esize)
 {
-	uint64_t total = 0;
+	uint64_t total;
 	struct thread_params param;
 	lcore_function_t *lcore_f;
 	unsigned int i, c;
@@ -392,6 +392,7 @@  run_on_all_cores(struct rte_ring *r, const int esize)
 
 	memset(&param, 0, sizeof(struct thread_params));
 	for (i = 0; i < RTE_DIM(bulk_sizes); i++) {
+		total = 0;
 		printf("\nBulk enq/dequeue count on size %u\n", bulk_sizes[i]);
 		param.size = bulk_sizes[i];
 		param.r = r;