[dpdk-dev] About pmu cycle counter usage in armv8

Jerin Jacob jerin.jacob at caviumnetworks.com
Mon Dec 11 06:59:31 CET 2017

-----Original Message-----
> Date: Mon, 11 Dec 2017 13:38:25 +0800
> From: Jia He <hejianet at gmail.com>
> To: Jerin Jacob <jerin.jacob at caviumnetworks.com>, "dev at dpdk.org"
>  <dev at dpdk.org>
> Subject: About pmu cycle counter usage in armv8
> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101
>  Thunderbird/52.5.0
> Hi Jerin
> In [1], I met a pmu cycle counter problem (all return value is 0)
> occasionally.
> And then I submited a patch to kernel maillist, but was rejected by
> maintainer at last [2].
> He said:
> "We only intend for the in-kernel perf infrastructure to access
> pmccntr_el0; nothing else should touch it."

Yes. That's the reason why
1) A warning added in documentation.
See at last
The PMU based scheme is useful for high accuracy performance profiling
with rte_rdtsc(). However, this method can not be used in conjunction
with Linux userspace profiling tools like perf as this scheme alters the
PMU registers state.
2) By default it is disabled and not need for production systems.
Needed only for performance debugging.

> So maybe it is not proper for dpdk to use pmu cycle counter?

But, There is no alternative in arm64 to get high resolution counter in
user space(in performance effective way)

> [1] http://dpdk.org/ml/archives/dev/2017-November/080998.html
> [2]https://lkml.org/lkml/2017/11/16/22
> -- 
> Cheers,
> Jia

More information about the dev mailing list