Hi Jerin

Ok

And I wonder why you haven't met such problem (all rd_tsc() is 0)in your test platform?

Did you use an old kernel (older than v4.5-rc1)?

root@aw-host:~/linux# git describe da4e4f18afe0
v4.5-rc1-8-gda4e4f1

Maybe you need to give a warning that, the usage of High-resolution cycle counter is not
correct if the kernel version is newer than v4.5-rc1-8-gda4e4f1?

Cheers,
Jia
On 12/11/2017 1:59 PM, Jerin Jacob Wrote:
-----Original Message-----
Date: Mon, 11 Dec 2017 13:38:25 +0800
From: Jia He <hejia...@gmail.com>
To: Jerin Jacob <jerin.ja...@caviumnetworks.com>, "dev@dpdk.org"
  <dev@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


Reply via email to