android上的perf工具不会传递结果

时间:2014-02-04 09:47:22

标签: android linux-kernel adb perf

我设置了下面的kernek配置并构建了内核。并使用http://kwangwoo.blogspot.in/2011/11/performance-monitoring-on-arm.html

在kernel / tools / perf中单独构建perf
CONFIG_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设备上做到的。可能是什么问题呢?有人可以帮忙吗?

1 个答案:

答案 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中看到它。