David Ahern <dsahern <at> gmail.com> writes:

> 
> On 11/18/14, 10:31 AM, Jerome Correnoz wrote:
> > Jerome Correnoz <jerome.correnoz <at> st.com> writes:
> >
> >>
> >> Hi,
> >>
> >> We're interested to know the CPU load/usage on our ARMv7 embedded 
system
> >> when running some use cases (e.g. simple video decode, double video
> >> decode, etc.). By CPU load, I mean a way to measure the time when the
> >> system was doing something else than Idle.
> >>
> >> I've tried to get it from the performance counter statistics but
> > couldn't
> >> find a way to get it, do I miss something ?
> >>
> >> Also tried to use perf for profiling the system (e.g. perf record -a).
> > It
> >> report very useful percentage for the running processes that we 
exploit
> > to
> >> detect hot spots. But It reports X% of the used CPU (nothing related 
to
> >> Idle or "rest of CPU").
> >>
> >> So, any way with perf to get this information (directly or indirectly
> > with
> >> few calculation) ?
> 
> Not exactly what you want but might be close:
> 
>    git clone https://github.com/dsahern/linux
>    git checkout perf-full-monty
>    make -C tools/perf
> 
> perf sched record -ag -- sleep 1
> perf sched timehist -S
> 
> shows the grains of sand (each sample) and then a runtime summary byt 
> task. Example report attached for box just running a few VMs.
> 
> David
> 
> 
>            time  cpu  task name              b/n time  sch delay   run 
time
>                       [tid/pid]                (msec)     (msec)     
(msec)
> --------------- ----  --------------------  ---------  ---------  -------
--
>  5945680.837926 [11]  <idle>                    0.000      0.000      
0.000 
>  5945680.837967 [02]  perf[25909]               0.000      0.000      
0.000    poll_schedule_timeout do_sys_poll sys_poll
> system_call_fastpath __poll
>  5945680.838017 [11]  perf[25910]               0.000      0.011      
0.091    __cond_resched _cond_resched wait_for_common
> wait_for_completion stop_one_cpu
>  5945680.838035 [11]  migration/11[60]          0.000      0.010      
0.017    cpu_stopper_thread kthread kernel_thread_helper
>  5945680.838071 [10]  <idle>                    0.000      0.000      
0.000 
>  5945680.838627 [11]  <idle>                    0.109      0.000      
0.591 
>  5945680.838675 [11]  kworker/11:0[2387]        0.000      0.007      
0.047    worker_thread kthread kernel_thread_helper
>  5945680.838822 [10]  sleep[25910]              0.053      0.000      
0.750    do_nanosleep hrtimer_nanosleep sys_nanosleep
> system_call_fastpath __GI___libc_nanosleep
>  5945680.838836 [10]  kworker/10:1[25017]       0.000      0.270      
0.013    worker_thread kthread kernel_thread_helper
>  5945680.839650 [02]  <idle>                    0.000      0.000      
1.683 
>  5945680.839653 [10]  <idle>                    0.764      0.000      
0.817 
>  5945680.839669 [02]  kworker/2:0[24394]        0.000      0.008      
0.019    worker_thread kthread kernel_thread_helper
>  5945680.839670 [10]  kworker/10:1[25017]       0.817      0.012      
0.016    worker_thread kthread kernel_thread_helper
>  5945680.839672 [11]  <idle>                    0.047      0.000      
0.997 
>  5945680.839684 [11]  kworker/11:0[2387]        0.997      0.005      
0.012    worker_thread kthread kernel_thread_helper
>  5945680.843522 [05]  <idle>                    0.000      0.000      
0.000 
>  5945680.843720 [05]  qemu-system-x86[10648/10642]      0.000      
0.012      0.198    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945680.843737 [05]  kworker/5:2[1822]                 0.000      
0.165      0.017    worker_thread kthread kernel_thread_helper
>  5945680.849210 [07]  <idle>                            0.000      
0.000      0.000 
>  5945680.849271 [07]  qemu-system-x86[26110/26103]      0.000      
0.014      0.060    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945680.849583 [07]  <idle>                            0.060      
0.000      0.312 
>  5945680.849662 [11]  <idle>                            0.012      
0.000      9.978 
>  5945680.849677 [11]  kworker/11:0[2387]                9.978      
0.010      0.014    worker_thread kthread kernel_thread_helper
>  5945680.849758 [01]  <idle>                            0.000      
0.000      0.000 
>  5945680.849774 [07]  qemu-system-x86[26110/26103]      0.312      
0.008      0.190    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945680.849912 [01]  qemu-system-x86[26111/26103]      0.000      
0.088      0.153    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945680.853973 [03]  <idle>                            0.000      
0.000      0.000 
>  5945680.854193 [09]  <idle>                            0.000      
0.000      0.000 
>  5945680.854211 [03]  qemu-system-x86[10886/10882]      0.000      
0.014      0.237    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945680.854296 [09]  qemu-system-x86[10887/10882]      0.000      
0.091      0.103    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945680.860643 [00]  <idle>                            0.000      
0.000      0.000 
>  5945680.860655 [00]  kworker/0:0[9363]                 0.000      
0.031      0.012    worker_thread kthread kernel_thread_helper
>  5945680.872267 [06]  <idle>                            0.000      
0.000      0.000 
>  5945680.872366 [06]  sendmail[1939]                    0.000      
0.013      0.098    poll_schedule_timeout do_select
> core_sys_select sys_select system_call_fastpath
>  5945680.872645 [06]  <idle>                            0.098      
0.000      0.279 
>  5945680.872660 [06]  kworker/6:2[31603]                0.000      
0.012      0.015    worker_thread kthread kernel_thread_helper
>  5945680.908105 [03]  <idle>                            0.237      
0.000     53.893 
>  5945680.908884 [03]  irqbalance[1228]                  0.000      
0.012      0.779    do_nanosleep hrtimer_nanosleep
> sys_nanosleep system_call_fastpath [unknown]
>  5945680.908900 [03]  kworker/3:1[98]                   0.000      
0.365      0.015    worker_thread kthread kernel_thread_helper
>  5945680.909630 [03]  <idle>                            0.794      
0.000      0.730 
>  5945680.909642 [03]  kworker/3:1[98]                   0.730      
0.007      0.012    worker_thread kthread kernel_thread_helper
>  5945680.999567 [00]  <idle>                            0.012      
0.000    138.911 
>  5945680.999581 [00]  kworker/0:0[9363]               138.911      
0.023      0.014    worker_thread kthread kernel_thread_helper
>  5945681.016550 [00]  <idle>                            0.014      
0.000     16.969 
>  5945681.016564 [00]  kworker/0:0[9363]                16.969      
0.013      0.013    worker_thread kthread kernel_thread_helper
>  5945681.039607 [11]  <idle>                            0.014      
0.000    189.929 
>  5945681.039620 [11]  kworker/11:0[2387]              189.929      
0.036      0.013    worker_thread kthread kernel_thread_helper
>  5945681.051961 [06]  <idle>                            0.015      
0.000    179.300 
>  5945681.052128 [06]  qemu-system-x86[10646/10642]      0.000      
0.020      0.166    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.057602 [15]  <idle>                            0.000      
0.000      0.000 
>  5945681.057617 [15]  kworker/15:1[110]                 0.000      
0.041      0.014    worker_thread kthread kernel_thread_helper
>  5945681.100411 [04]  <idle>                            0.000      
0.000      0.000 
>  5945681.100642 [05]  <idle>                            0.215      
0.000    256.905 
>  5945681.100684 [04]  qemu-system-x86[10647/10642]      0.000      
0.028      0.273    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.100703 [04]  kworker/4:0[26137]                0.000      
0.244      0.018    worker_thread kthread kernel_thread_helper
>  5945681.100722 [05]  qemu-system-x86[10648/10642]    256.922      
0.023      0.079    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.145671 [04]  <idle>                            0.291      
0.000     44.968 
>  5945681.145796 [04]  qemu-system-x86[10647/10642]     44.986      
0.012      0.124    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.166463 [00]  <idle>                            0.013      
0.000    149.898 
>  5945681.166474 [00]  watchdog/0[9]                     0.000      
0.020      0.011    watchdog kthread kernel_thread_helper
>  5945681.182513 [04]  <idle>                            0.124      
0.000     36.717 
>  5945681.182609 [04]  qemu-system-x86[10647/10642]     36.717      
0.012      0.095    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.197559 [02]  <idle>                            0.019      
0.000    357.889 
>  5945681.197574 [02]  kworker/2:0[24394]              357.889      
0.040      0.014    worker_thread kthread kernel_thread_helper
>  5945681.227502 [11]  <idle>                            0.013      
0.000    187.881 
>  5945681.227517 [11]  kworker/11:0[2387]              187.881      
0.026      0.014    worker_thread kthread kernel_thread_helper
>  5945681.240472 [01]  <idle>                            0.153      
0.000    390.560 
>  5945681.240483 [01]  watchdog/1[14]                    0.000      
0.032      0.011    watchdog kthread kernel_thread_helper
>  5945681.255471 [02]  <idle>                            0.014      
0.000     57.896 
>  5945681.255482 [02]  watchdog/2[19]                    0.000      
0.012      0.010    watchdog kthread kernel_thread_helper
>  5945681.270451 [03]  <idle>                            0.012      
0.000    360.809 
>  5945681.270463 [03]  watchdog/3[24]                    0.000      
0.030      0.011    watchdog kthread kernel_thread_helper
>  5945681.277390 [06]  <idle>                            0.166      
0.000    225.261 
>  5945681.277399 [06]  kworker/6:2[31603]              404.729      
0.045      0.009    worker_thread kthread kernel_thread_helper
>  5945681.277583 [06]  qemu-system-x86[10646/10642]    225.270      
0.083      0.184    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.285441 [04]  <idle>                            0.095      
0.000    102.832 
>  5945681.285452 [04]  watchdog/4[29]                    0.000      
0.015      0.010    watchdog kthread kernel_thread_helper
>  5945681.289473 [11]  <idle>                            0.014      
0.000     61.956 
>  5945681.289488 [11]  kworker/11:0[2387]               61.956      
0.024      0.014    worker_thread kthread kernel_thread_helper
>  5945681.301421 [05]  <idle>                            0.079      
0.000    200.699 
>  5945681.301433 [05]  watchdog/5[34]                    0.000      
0.020      0.011    watchdog kthread kernel_thread_helper
>  5945681.316432 [06]  <idle>                            0.193      
0.000     38.848 
>  5945681.316444 [06]  watchdog/6[39]                    0.000      
0.011      0.011    watchdog kthread kernel_thread_helper
>  5945681.331400 [07]  <idle>                            0.190      
0.000    481.626 
>  5945681.331411 [07]  watchdog/7[44]                    0.000      
0.037      0.011    watchdog kthread kernel_thread_helper
>  5945681.334129 [07]  <idle>                            0.011      
0.000      2.717 
>  5945681.334174 [07]  qemu-system-x86[26110/26103]    484.354      
0.010      0.045    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.334256 [07]  <idle>                            0.045      
0.000      0.082 
>  5945681.334357 [07]  qemu-system-x86[26110/26103]      0.082      
0.005      0.101    __cond_resched _cond_resched
> kvm_resched kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl
>  5945681.334375 [07]  kworker/7:0[31118]                0.000      
0.044      0.017    worker_thread kthread kernel_thread_helper
>  5945681.334466 [07]  qemu-system-x86[26110/26103]      0.017      
0.000      0.091    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.343901 [05]  <idle>                            0.011      
0.000     42.468 
>  5945681.344019 [05]  qemu-system-x86[10648/10642]    243.179      
0.012      0.118    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.347412 [08]  <idle>                            0.000      
0.000      0.000 
>  5945681.347422 [08]  watchdog/8[49]                    0.000      
0.043      0.010    watchdog kthread kernel_thread_helper
>  5945681.349075 [01]  <idle>                            0.011      
0.000    108.591 
>  5945681.349119 [01]  qemu-system-x86[26111/26103]    499.163      
0.016      0.044    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.349205 [01]  <idle>                            0.044      
0.000      0.086 
>  5945681.349347 [01]  qemu-system-x86[26111/26103]      0.086      
0.005      0.142    __cond_resched _cond_resched
> kvm_resched kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl
>  5945681.349360 [03]  <idle>                            0.011      
0.000     78.897 
>  5945681.349361 [01]  kworker/1:1[23960]                0.000      
0.044      0.013    worker_thread kthread kernel_thread_helper
>  5945681.349448 [01]  qemu-system-x86[26111/26103]      0.013      
0.000      0.087    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.349553 [03]  qemu-system-x86[26108/26103]      0.000      
0.086      0.192    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.353894 [09]  <idle>                            0.103      
0.000    499.597 
>  5945681.354003 [01]  <idle>                            0.243      
0.000      4.554 
>  5945681.354116 [09]  qemu-system-x86[10887/10882]    499.597      
0.039      0.222    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.354175 [01]  qemu-system-x86[10888/10882]      0.000      
0.022      0.172    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.363371 [09]  <idle>                            0.222      
0.000      9.254 
>  5945681.363383 [09]  watchdog/9[54]                    0.000      
0.009      0.011    watchdog kthread kernel_thread_helper
>  5945681.378430 [10]  <idle>                            0.016      
0.000    538.760 
>  5945681.378441 [10]  watchdog/10[59]                   0.000      
0.040      0.010    watchdog kthread kernel_thread_helper
>  5945681.387738 [00]  <idle>                            0.011      
0.000    221.264 
>  5945681.387795 [00]  dnsmasq[1845]                     0.000      
0.026      0.056    poll_schedule_timeout do_select
> core_sys_select sys_select system_call_fastpath
>  5945681.393356 [11]  <idle>                            0.014      
0.000    103.867 
>  5945681.393367 [11]  watchdog/11[64]                   0.000      
0.016      0.011    watchdog kthread kernel_thread_helper
>  5945681.408382 [12]  <idle>                            0.000      
0.000      0.000 
>  5945681.408393 [12]  watchdog/12[69]                   0.000      
0.020      0.011    watchdog kthread kernel_thread_helper
>  5945681.413414 [03]  <idle>                            0.192      
0.000     63.860 
>  5945681.413426 [03]  kworker/3:1[98]                 503.771      
0.025      0.012    worker_thread kthread kernel_thread_helper
>  5945681.419302 [01]  <idle>                            0.172      
0.000     65.126 
>  5945681.419312 [01]  kworker/1:1[23960]               69.941      
0.034      0.009    worker_thread kthread kernel_thread_helper
>  5945681.419329 [03]  <idle>                            0.012      
0.000      5.902 
>  5945681.419373 [01]  qemu-system-x86[26111/26103]     69.863      
0.065      0.060    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.419812 [03]  qemu-system-x86[26108/26103]     69.776      
0.010      0.483    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.424370 [13]  <idle>                            0.000      
0.000      0.000 
>  5945681.424381 [13]  watchdog/13[74]                   0.000      
0.045      0.011    watchdog kthread kernel_thread_helper
>  5945681.437452 [15]  <idle>                            0.014      
0.000    379.835 
>  5945681.437511 [15]  qemu-system-x86[10885/10882]      0.000      
0.032      0.058    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.438350 [15]  <idle>                            0.058      
0.000      0.839 
>  5945681.439062 [15]  qemu-system-x86[10885/10882]      0.839      
0.008      0.712    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.439313 [15]  <idle>                            0.712      
0.000      0.250 
>  5945681.439328 [14]  <idle>                            0.000      
0.000      0.000 
>  5945681.439339 [14]  watchdog/14[79]                   0.000      
0.047      0.011    watchdog kthread kernel_thread_helper
>  5945681.439391 [15]  qemu-system-x86[10885/10882]      0.250      
0.008      0.078    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.440277 [15]  <idle>                            0.078      
0.000      0.886 
>  5945681.440325 [15]  qemu-system-x86[10885/10882]      0.886      
0.008      0.047    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.441288 [15]  <idle>                            0.047      
0.000      0.962 
>  5945681.441341 [15]  qemu-system-x86[10885/10882]      0.962      
0.009      0.053    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.442277 [15]  <idle>                            0.053      
0.000      0.935 
>  5945681.442323 [15]  qemu-system-x86[10885/10882]      0.935      
0.008      0.046    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.443287 [15]  <idle>                            0.046      
0.000      0.964 
>  5945681.443360 [15]  qemu-system-x86[10885/10882]      0.964      
0.009      0.072    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.454313 [15]  <idle>                            0.072      
0.000     10.953 
>  5945681.454325 [15]  watchdog/15[84]                   0.000      
0.009      0.011    watchdog kthread kernel_thread_helper
>  5945681.539360 [11]  <idle>                            0.011      
0.000    145.992 
>  5945681.539373 [11]  kworker/11:0[2387]              249.871      
0.032      0.013    worker_thread kthread kernel_thread_helper
>  5945681.541346 [01]  <idle>                            0.070      
0.000    121.973 
>  5945681.541360 [01]  kworker/1:1[23960]              122.034      
0.023      0.013    worker_thread kthread kernel_thread_helper
>  5945681.548783 [06]  <idle>                            0.011      
0.000    232.339 
>  5945681.548977 [06]  qemu-system-x86[10646/10642]    271.200      
0.023      0.193    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.549755 [06]  <idle>                            0.193      
0.000      0.778 
>  5945681.549836 [06]  qemu-system-x86[10646/10642]      0.778      
0.008      0.080    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.550729 [06]  <idle>                            0.080      
0.000      0.893 
>  5945681.550772 [06]  qemu-system-x86[10646/10642]      0.893      
0.008      0.043    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.551783 [06]  <idle>                            0.043      
0.000      1.011 
>  5945681.551832 [06]  qemu-system-x86[10646/10642]      1.011      
0.010      0.048    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.551890 [06]  <idle>                            0.048      
0.000      0.058 
>  5945681.551953 [06]  qemu-system-x86[10646/10642]      0.058      
0.005      0.062    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.552752 [06]  <idle>                            0.062      
0.000      0.799 
>  5945681.552807 [06]  qemu-system-x86[10646/10642]      0.799      
0.008      0.054    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.553765 [06]  <idle>                            0.054      
0.000      0.958 
>  5945681.553825 [06]  qemu-system-x86[10646/10642]      0.958      
0.009      0.060    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.577342 [07]  <idle>                            0.209      
0.000    242.875 
>  5945681.577355 [07]  kworker/7:0[31118]              242.966      
0.035      0.013    worker_thread kthread kernel_thread_helper
>  5945681.577398 [01]  <idle>                            0.013      
0.000     36.037 
>  5945681.577418 [01]  kworker/u:0[26844]                0.000      
0.081      0.020    worker_thread kthread kernel_thread_helper
>  5945681.593314 [01]  <idle>                            0.020      
0.000     15.896 
>  5945681.593329 [01]  kworker/1:1[23960]               51.954      
0.019      0.014    worker_thread kthread kernel_thread_helper
>  5945681.593387 [03]  <idle>                            0.483      
0.000    173.574 
>  5945681.593405 [03]  kworker/u:0[26844]               15.968      
0.084      0.018    worker_thread kthread kernel_thread_helper
>  5945681.599969 [05]  <idle>                            0.118      
0.000    255.949 
>  5945681.600116 [02]  <idle>                            0.010      
0.000    344.634 
>  5945681.600142 [05]  qemu-system-x86[10648/10642]    255.949      
0.025      0.172    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.600284 [08]  <idle>                            0.010      
0.000    252.861 
>  5945681.600355 [02]  qemu-system-x86[10645/10642]      0.000      
0.028      0.238    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.600373 [02]  kworker/2:0[24394]              402.781      
0.168      0.017    worker_thread kthread kernel_thread_helper
>  5945681.600844 [08]  qemu-system-x86[10642]            0.000      
0.031      0.560    poll_schedule_timeout do_sys_poll
> sys_poll system_call_fastpath [unknown]
>  5945681.683080 [04]  <idle>                            0.010      
0.000    397.627 
>  5945681.683282 [04]  qemu-system-x86[10647/10642]    500.470      
0.033      0.202    kvm_vcpu_block
> kvm_arch_vcpu_ioctl_run kvm_vcpu_ioctl do_vfs_ioctl sys_ioctl
>  5945681.683300 [04]  kworker/4:0[26137]              582.579      
0.138      0.017    worker_thread kthread kernel_thread_helper
>  5945681.727334 [12]  <idle>                            0.011      
0.000    318.940 
>  5945681.727349 [12]  kworker/12:2[545]                 0.000      
0.070      0.015    worker_thread kthread kernel_thread_helper
>  5945681.757251 [11]  <idle>                            0.013      
0.000    217.877 
>  5945681.757267 [11]  kworker/11:0[2387]              217.877      
0.032      0.016    worker_thread kthread kernel_thread_helper
>  5945681.789235 [01]  <idle>                            0.014      
0.000    195.905 
>  5945681.789251 [01]  kworker/1:1[23960]              195.905      
0.032      0.016    worker_thread kthread kernel_thread_helper
>  5945681.789283 [03]  <idle>                            0.018      
0.000    195.877 
>  5945681.789298 [11]  <idle>                            0.016      
0.000     32.030 
>  5945681.789301 [03]  kworker/u:0[26844]              195.877      
0.071      0.018    worker_thread kthread kernel_thread_helper
>  5945681.789316 [11]  kworker/11:0[2387]               32.030      
0.025      0.018    worker_thread kthread kernel_thread_helper
>  5945681.805203 [00]  <idle>                            0.056      
0.000    417.407 
>  5945681.805219 [00]  kworker/0:0[9363]               788.638      
0.051      0.016    worker_thread kthread kernel_thread_helper
>  5945681.838566 [10]  <idle>                            0.010      
0.000    460.125 
>  5945681.838682 [10]  sleep[25910]                    999.744      
0.035      0.115    io_schedule sleep_on_page __wait_on_bit
> wait_on_page_bit filemap_fdatawait_range
>  5945681.838746 [10]  kworker/10:1[25017]             999.012      
0.017      0.064    worker_thread kthread kernel_thread_helper
>  5945681.842209 [00]  <idle>                            0.016      
0.000     36.989 
>  5945681.842250 [00]  kworker/0:0[9363]                36.989      
0.038      0.040    worker_thread kthread kernel_thread_helper
>  5945681.842304 [10]  <idle>                            0.180      
0.000      3.557 
>  5945681.842347 [10]  sleep[25910]                      3.622      
0.073      0.042    do_exit do_group_exit sys_exit_group 
system_call_fastpath
>  5945681.842362 [02]  <idle>                            0.256      
0.000    241.989 
>  5945681.843243 [10]  <idle>                            0.042      
0.000      0.896 
>  5945681.843257 [10]  kworker/10:1[25017]               4.496      
0.023      0.014    worker_thread kthread kernel_thread_helper
> 
> Runtime summary
>                           comm  parent   sched-in     run-time    min-
run     avg-run     max-run  stddev
>                                           (count)       (msec)     
(msec)      (msec)      (msec)       %
> -------------------------------------------------------------------------
--------------------------------
>                  watchdog/0[9]      -1          1        0.011      
0.011       0.011       0.011    0.00
>                 watchdog/1[14]      -1          1        0.011      
0.011       0.011       0.011    0.00
>                 watchdog/2[19]      -1          1        0.010      
0.010       0.010       0.010    0.00
>                 watchdog/3[24]      -1          1        0.011      
0.011       0.011       0.011    0.00
>                 watchdog/4[29]      -1          1        0.010      
0.010       0.010       0.010    0.00
>                 watchdog/5[34]      -1          1        0.011      
0.011       0.011       0.011    0.00
>                 watchdog/6[39]      -1          1        0.011      
0.011       0.011       0.011    0.00
>                 watchdog/7[44]      -1          1        0.011      
0.011       0.011       0.011    0.00
>                 watchdog/8[49]      -1          1        0.010      
0.010       0.010       0.010    0.00
>                 watchdog/9[54]      -1          1        0.011      
0.011       0.011       0.011    0.00
>                watchdog/10[59]      -1          1        0.010      
0.010       0.010       0.010    0.00
>               migration/11[60]      -1          1        0.017      
0.017       0.017       0.017    0.00
>                watchdog/11[64]      -1          1        0.011      
0.011       0.011       0.011    0.00
>                watchdog/12[69]      -1          1        0.011      
0.011       0.011       0.011    0.00
>                watchdog/13[74]      -1          1        0.011      
0.011       0.011       0.011    0.00
>                watchdog/14[79]      -1          1        0.011      
0.011       0.011       0.011    0.00
>                watchdog/15[84]      -1          1        0.011      
0.011       0.011       0.011    0.00
>                kworker/3:1[98]      -1          3        0.040      
0.012       0.013       0.015    7.74
>              kworker/15:1[110]      -1          1        0.014      
0.014       0.014       0.014    0.00
>              kworker/12:2[545]      -1          1        0.015      
0.015       0.015       0.015    0.00
>               irqbalance[1228]      -1          1        0.779      
0.779       0.779       0.779    0.00
>              kworker/5:2[1822]      -1          1        0.017      
0.017       0.017       0.017    0.00
>                  dnsmasq[1845]      -1          1        0.056      
0.056       0.056       0.056    0.00
>                 sendmail[1939]      -1          1        0.098      
0.098       0.098       0.098    0.00
>             kworker/11:0[2387]      -1          9        0.165      
0.012       0.018       0.047   20.06
>              kworker/0:0[9363]      -1          5        0.098      
0.012       0.019       0.040   27.10
>         qemu-system-x86[10642]      -1          1        0.560      
0.560       0.560       0.560    0.00
>   qemu-system-x86[10645/10642]      -1          1        0.238      
0.238       0.238       0.238    0.00
>   qemu-system-x86[10646/10642]      -1          9        0.894      
0.043       0.099       0.193   21.06
>   qemu-system-x86[10647/10642]      -1          4        0.695      
0.095       0.173       0.273   23.01
>   qemu-system-x86[10648/10642]      -1          4        0.568      
0.079       0.142       0.198   18.74
>   qemu-system-x86[10885/10882]      -1          7        1.068      
0.046       0.152       0.712   61.19
>   qemu-system-x86[10886/10882]      -1          1        0.237      
0.237       0.237       0.237    0.00
>   qemu-system-x86[10887/10882]      -1          2        0.325      
0.103       0.162       0.222   36.53
>   qemu-system-x86[10888/10882]      -1          1        0.172      
0.172       0.172       0.172    0.00
>             kworker/1:1[23960]      -1          5        0.067      
0.009       0.013       0.016    7.95
>             kworker/2:0[24394]      -1          3        0.051      
0.014       0.017       0.019    7.63
>            kworker/10:1[25017]      -1          4        0.109      
0.013       0.027       0.064   45.52
>                    perf[25909]      -1          1        0.000      
0.000       0.000       0.000    0.00
>   qemu-system-x86[26108/26103]      -1          2        0.675      
0.192       0.337       0.483   43.09
>   qemu-system-x86[26110/26103]      -1          5        0.488      
0.045       0.097       0.190   25.87
>   qemu-system-x86[26111/26103]      -1          5        0.488      
0.044       0.097       0.153   22.11
>             kworker/4:0[26137]      -1          2        0.036      
0.017       0.018       0.018    2.21
>             kworker/u:0[26844]      -1          3        0.057      
0.018       0.019       0.020    2.55
>             kworker/7:0[31118]      -1          2        0.031      
0.013       0.015       0.017   12.08
>             kworker/6:2[31603]      -1          2        0.025      
0.009       0.012       0.015   25.10
> 
> Terminated tasks:
>                   sleep[25910]      -1          4        1.000      
0.042       0.250       0.750   66.95
> 
> Idle stats:
>     CPU  0 idle for    981.440  msec
>     CPU  1 idle for    938.732  msec
>     CPU  2 idle for   1004.093  msec
>     CPU  3 idle for    933.546  msec
>     CPU  4 idle for    582.145  msec
>     CPU  5 idle for    756.022  msec
>     CPU  6 idle for    680.527  msec
>     CPU  7 idle for    727.613  msec
>     CPU  8 idle for    252.861  msec
>     CPU  9 idle for    508.852  msec
>     CPU 10 idle for   1004.157  msec
>     CPU 11 idle for    951.103  msec
>     CPU 12 idle for    318.940  msec
>     CPU 13 idle for      0.000  msec
>     CPU 14 idle for      0.000  msec
>     CPU 15 idle for    395.627  msec
> 
>     Total number of unique tasks: 47
> Total number of context switches: 202
>            Total run time (msec):  9.278 
> 


All,

We've finnaly been able to find a way to get the consummed CPU with perf 
on ARMv7. 

By default, 'perf record' uses cpu-cycles HW event as counter. On ARMv7, 
when entering idle state (wfi), the CPU clock are gated and the CPU cycles 
should not increase which could explain the previous figures we had.
(e.g. 6.25%      swapper  [kernel.kallsyms]      [k])

The solution we found consists in using 'task-clock' or 'cpu-clock' as 
counter (perf record -e task-clock -a sleep xxx).

With it, the percentage for swapper takes into account the idle state.
(e.g. 89.15%      swapper  [kernel.kallsyms]      [k])
Using the swapper percentage, we have a good approximation of CPU load.
CPU load = 100% - (%swapper)

which is around  11% for the above use case example and it is conform to 
other CPU load measures done with other tools.

Jerome


--
To unsubscribe from this list: send the line "unsubscribe linux-perf-users" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to