<snip> > > > > Add test cases to test legacy and rte_ring_xxx_elem APIs for burst > > enqueue/dequeue test cases. > > > > Signed-off-by: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com> > > Reviewed-by: Gavin Hu <gavin...@arm.com> > > --- > > app/test/test_ring_perf.c | 78 > > ++++++++++++++++++++------------------- > > 1 file changed, 40 insertions(+), 38 deletions(-) > > > > diff --git a/app/test/test_ring_perf.c b/app/test/test_ring_perf.c > > index 5829718c1..508c688dc 100644 > > --- a/app/test/test_ring_perf.c > > +++ b/app/test/test_ring_perf.c > > @@ -397,47 +397,40 @@ test_single_enqueue_dequeue(struct rte_ring *r, > > const int esize, } > > > > /* > > - * Test that does both enqueue and dequeue on a core using the > > burst() API calls > > - * instead of the bulk() calls used in other tests. Results should be > > the same > > - * as for the bulk function called on a single lcore. > > + * Test that does both enqueue and dequeue on a core using the > > + burst/bulk API > > + * calls Results should be the same as for the bulk function called > > + on a > > + * single lcore. > > */ > > -static void > > -test_burst_enqueue_dequeue(struct rte_ring *r) > > +static int > > +test_burst_bulk_enqueue_dequeue(struct rte_ring *r, const int esize, > > + const unsigned int api_type) > > { > > - const unsigned iter_shift = 23; > > - const unsigned iterations = 1<<iter_shift; > > - unsigned sz, i = 0; > > - void *burst[MAX_BURST] = {0}; > > + int ret; > > + const unsigned int iter_shift = 23; > > + const unsigned int iterations = 1 << iter_shift; > > + unsigned int sz, i = 0; > > + void **burst = NULL; > > > > - for (sz = 0; sz < sizeof(bulk_sizes)/sizeof(bulk_sizes[0]); sz++) { > > - const uint64_t sc_start = rte_rdtsc(); > > - for (i = 0; i < iterations; i++) { > > - rte_ring_sp_enqueue_burst(r, burst, > > - bulk_sizes[sz], NULL); > > - rte_ring_sc_dequeue_burst(r, burst, > > - bulk_sizes[sz], NULL); > > - } > > - const uint64_t sc_end = rte_rdtsc(); > > + (void)ret; > > + burst = test_ring_calloc(MAX_BURST, esize); > > + if (burst == NULL) > > + return -1; > > > > - const uint64_t mc_start = rte_rdtsc(); > > + for (sz = 0; sz < RTE_DIM(bulk_sizes); sz++) { > > + const uint64_t start = rte_rdtsc(); > > for (i = 0; i < iterations; i++) { > > - rte_ring_mp_enqueue_burst(r, burst, > > - bulk_sizes[sz], NULL); > > - rte_ring_mc_dequeue_burst(r, burst, > > - bulk_sizes[sz], NULL); > > + TEST_RING_ENQUEUE(r, burst, esize, bulk_sizes[sz], > > + ret, api_type); > > + TEST_RING_DEQUEUE(r, burst, esize, bulk_sizes[sz], > > + ret, api_type); > > } > > - const uint64_t mc_end = rte_rdtsc(); > > - > > - double mc_avg = ((double)(mc_end-mc_start) / iterations) / > > - bulk_sizes[sz]; > > - double sc_avg = ((double)(sc_end-sc_start) / iterations) / > > - bulk_sizes[sz]; > > + const uint64_t end = rte_rdtsc(); > > > > - 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); > > + test_ring_print_test_string(api_type, esize, bulk_sizes[sz], > > + ((double)(end - start)) / iterations); > > } > > + > > missing rte_free(burst); > ? Yes, will fix.
> > > + return 0; > > } > >