[dpdk-dev] [EXT] [PATCH v3 3/6] test/spinlock: get timestamp more precisely
Jerin Jacob Kollanukkaran
jerinj at marvell.com
Thu Dec 27 08:27:43 CET 2018
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.hu at arm.com>
> Reviewed-by: Phil Yang <phil.yang at 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;
More information about the dev
mailing list