[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.
http://dpdk.org/doc/guides/prog_guide/profile_app.html
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