[dpdk-dev] [PATCH] test: fix mempool perf test enq_count wraparound of 32-bit uint

Bruce Richardson bruce.richardson at intel.com
Thu May 26 15:48:49 CEST 2016


On Thu, May 26, 2016 at 01:51:08PM +0100, David Hunt wrote:
> recent CPU's can easily wrap around a 32-bit unsigned int in
> the mempool perf test. Increase to a 64-bit uint.
> 
> Signed-off-by: David Hunt <david.hunt at intel.com>
> ---
>  app/test/test_mempool_perf.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/app/test/test_mempool_perf.c b/app/test/test_mempool_perf.c
> index cdc02a0..2f48545 100644
> --- a/app/test/test_mempool_perf.c
> +++ b/app/test/test_mempool_perf.c
> @@ -110,7 +110,7 @@ static unsigned n_keep;
>  
>  /* number of enqueues / dequeues */
>  struct mempool_test_stats {
> -	unsigned enq_count;
> +	uint64_t enq_count;
>  } __rte_cache_aligned;
>  
>  static struct mempool_test_stats stats[RTE_MAX_LCORE];
> @@ -189,7 +189,7 @@ static int
>  launch_cores(unsigned cores)
>  {
>  	unsigned lcore_id;
> -	unsigned rate;
> +	uint64_t rate;
>  	int ret;
>  	unsigned cores_save = cores;
>  
> @@ -238,7 +238,7 @@ launch_cores(unsigned cores)
>  	for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id++)
>  		rate += (stats[lcore_id].enq_count / TIME_S);
>  
> -	printf("rate_persec=%u\n", rate);
> +	printf("rate_persec=%lu\n", rate);
Use PRIu64 instead of %lu, as %lu is only 32-bit on 32-bit systems.

/Bruce


More information about the dev mailing list