我设置了下面的kernek配置并构建了内核。并使用http://kwangwoo.blogspot.in/2011/11/performance-monitoring-on-arm.html
在kernel / tools / perf中单独构建perfCONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_USE_VMALLOC=y
CONFIG_PERF_EVENTS=y
CONFIG_PERF_COUNTERS=y
CONFIG_HW_PERF_EVENTS=y
但我对大多数东西都是0。
Performance counter stats for 'ls':
21.059054 task-clock # 0.313 CPUs utilized
80 context-switches # 0.004 M/sec
0 CPU-migrations # 0.000 K/sec
139 page-faults # 0.007 M/sec
0 cycles # 0.000 GHz [80.24%]
0 stalled-cycles-frontend # 0.00% frontend cycles idle [64.89%]
0 stalled-cycles-backend # 0.00% backend cycles idle [75.43%]
0 instructions # 0.00 insns per cycle
0 branches # 0.000 K/sec
0 branch-misses # 0.00% of all branches [65.55%]
0.067236380 seconds time elapsed
但我的大多数计数器都得到0。
我是在nexus 4设备上做到的。可能是什么问题呢?有人可以帮忙吗?
答案 0 :(得分:0)
我为Nexus 4编译了一个内核3.4.0的Kitkat主机,我得到了相同的结果。
我发现在内核中有这个文件,特定于Krait:arch / arm / kernel / perf_event_msm_krait.c 它很好用,因为在dmesg中,我得到:
< 6> [0.002350] hw perfevents:使用ARMv7 Krait PMU驱动程序启用,提供5个计数器
但我认为Krait PMU在这个内核版本中的支持非常有限。这将由lwn article titled "Support Krait CPU PMUs"确认。 这个补丁的日期是今年1月,我没有在内核3.13中看到它。