[dpdk-dev] [RFC v6 1/6] test/ring: use division for cycle count calculation
Honnappa Nagarahalli
honnappa.nagarahalli at arm.com
Mon Oct 21 02:22:55 CEST 2019
Use division instead of modulo operation to calculate more
accurate cycle count.
Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli at arm.com>
---
app/test/test_ring_perf.c | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/app/test/test_ring_perf.c b/app/test/test_ring_perf.c
index b6ad703bb..e3e17f251 100644
--- a/app/test/test_ring_perf.c
+++ b/app/test/test_ring_perf.c
@@ -284,10 +284,10 @@ test_single_enqueue_dequeue(struct rte_ring *r)
}
const uint64_t mc_end = rte_rdtsc();
- printf("SP/SC single enq/dequeue: %"PRIu64"\n",
- (sc_end-sc_start) >> iter_shift);
- printf("MP/MC single enq/dequeue: %"PRIu64"\n",
- (mc_end-mc_start) >> iter_shift);
+ printf("SP/SC single enq/dequeue: %.2F\n",
+ ((double)(sc_end-sc_start)) / iterations);
+ printf("MP/MC single enq/dequeue: %.2F\n",
+ ((double)(mc_end-mc_start)) / iterations);
}
/*
@@ -322,13 +322,15 @@ test_burst_enqueue_dequeue(struct rte_ring *r)
}
const uint64_t mc_end = rte_rdtsc();
- uint64_t mc_avg = ((mc_end-mc_start) >> iter_shift) / bulk_sizes[sz];
- uint64_t sc_avg = ((sc_end-sc_start) >> iter_shift) / bulk_sizes[sz];
+ double mc_avg = ((double)(mc_end-mc_start) / iterations) /
+ bulk_sizes[sz];
+ double sc_avg = ((double)(sc_end-sc_start) / iterations) /
+ bulk_sizes[sz];
- printf("SP/SC burst enq/dequeue (size: %u): %"PRIu64"\n", bulk_sizes[sz],
- sc_avg);
- printf("MP/MC burst enq/dequeue (size: %u): %"PRIu64"\n", bulk_sizes[sz],
- mc_avg);
+ printf("SP/SC burst enq/dequeue (size: %u): %.2F\n",
+ bulk_sizes[sz], sc_avg);
+ printf("MP/MC burst enq/dequeue (size: %u): %.2F\n",
+ bulk_sizes[sz], mc_avg);
}
}
--
2.17.1
More information about the dev
mailing list