[dpdk-dev] [PATCH 4/5] eal/armv8: define architecture specific rdtsc hz
Jianbo Liu
jianbo.liu at linaro.org
Tue Aug 15 05:35:15 CEST 2017
On 13 August 2017 at 15:03, Jerin Jacob <jerin.jacob at caviumnetworks.com> wrote:
> Use cntvct_el0 system register to get the system counter frequency.
>
> If the system is configured with RTE_ARM_EAL_RDTSC_USE_PMU then
> return 0(let the common code calibrate the tsc frequency).
>
> CC: Jianbo Liu <jianbo.liu at linaro.org>
> Signed-off-by: Jerin Jacob <jerin.jacob at caviumnetworks.com>
> ---
> .../common/include/arch/arm/rte_cycles_64.h | 30 ++++++++++++++++++++++
> 1 file changed, 30 insertions(+)
>
> diff --git a/lib/librte_eal/common/include/arch/arm/rte_cycles_64.h b/lib/librte_eal/common/include/arch/arm/rte_cycles_64.h
> index 154576910..5b95cb67d 100644
> --- a/lib/librte_eal/common/include/arch/arm/rte_cycles_64.h
> +++ b/lib/librte_eal/common/include/arch/arm/rte_cycles_64.h
> @@ -58,6 +58,23 @@ rte_rdtsc(void)
> asm volatile("mrs %0, cntvct_el0" : "=r" (tsc));
> return tsc;
> }
> +
> +/**
> + * Get the number of rdtsc cycles in one second if the architecture supports.
> + *
> + * @return
> + * The number of rdtsc cycles in one second. Return zero if the architecture
> + * support is not available.
> + */
> +static inline uint64_t
> +rte_rdtsc_arch_hz(void)
> +{
> + uint64_t freq;
> +
> + asm volatile("mrs %0, cntfrq_el0" : "=r" (freq));
> + return freq;
> +}
> +
> #else
> /**
> * This is an alternative method to enable rte_rdtsc() with high resolution
> @@ -85,6 +102,19 @@ rte_rdtsc(void)
> asm volatile("mrs %0, pmccntr_el0" : "=r"(tsc));
> return tsc;
> }
> +
> +/**
> + * Get the number of rdtsc cycles in one second if the architecture supports.
> + *
> + * @return
> + * The number of rdtsc cycles in one second. Return zero if the architecture
> + * support is not available.
> + */
> +static inline uint64_t
> +rte_rdtsc_arch_hz(void)
> +{
> + return 0;
> +}
> #endif
>
> static inline uint64_t
> --
> 2.14.0
>
Acked-by: Jianbo Liu <jianbo.liu at linaro.org>
More information about the dev
mailing list