0

我设置了以下内核配置并构建了内核。并使用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设备上做到了这一点。可能是什么问题呢?有人可以帮忙吗?

4

1 回答 1

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 在这个内核版本中的支持非常有限。这篇题为“支持 Krait CPU PMU”的文章将证实这一点。这个补丁的发布日期是今年一月,我在内核 3.13 中看不到它。

于 2014-02-26T14:50:48.700 回答