On Thu, 2018-12-27 at 12:13 +0800, Gavin Hu wrote:
> -------------------------------------------------------------------
> ---
> To precisely benchmark the spinlock performance, uses the precise
> version of getting timestamps, which enforces the timestamps are
> obtained at the expected places.
> 
> Signed-off-by: Gavin Hu <gavin...@arm.com>
> Reviewed-by: Phil Yang <phil.y...@arm.com>
> ---
>  test/test/test_spinlock.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/test/test/test_spinlock.c b/test/test/test_spinlock.c
> index 6795195ae..648474833 100644
> --- a/test/test/test_spinlock.c
> +++ b/test/test/test_spinlock.c
> @@ -113,14 +113,14 @@ load_loop_fn(void *func_param)
>       if (lcore != rte_get_master_lcore())
>               while (rte_atomic32_read(&synchro) == 0);
>  
> -     begin = rte_get_timer_cycles();
> +     begin = rte_rdtsc_precise();
>       while (time_diff < hz * TIME_MS / 1000) {
>               if (use_lock)
>                       rte_spinlock_lock(&lk);
>               lcount++;
>               if (use_lock)
>                       rte_spinlock_unlock(&lk);
> -             time_diff = rte_get_timer_cycles() - begin;
> +             time_diff = rte_rdtsc_precise() - begin;

Since _precise() versions add a full barrier, time_diff would
include delay of a full barrier also. As mentioned in the commit 
message, Do you see rte_get_timer_cycles() called in unexpected places?
Is there difference in time_diff apart from delay in rte_mb() when
using with _precise() version?





>       }
>       lock_count[lcore] = lcount;
>       return 0;

Reply via email to