test/ring: fix statistics in bulk enq/dequeue
authorFeifei Wang <feifei.wang2@arm.com>
Mon, 8 Jun 2020 05:58:46 +0000 (13:58 +0800)
committerDavid Marchand <david.marchand@redhat.com>
Wed, 1 Jul 2020 08:41:19 +0000 (10:41 +0200)
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>
app/test/test_ring_perf.c

index ee21faf..ac9bf56 100644 (file)
@@ -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;