Skip to content
  • Arnaldo Carvalho de Melo's avatar
    perf trace: Introduce per-event maximum number of events property · a9c5e6c1
    Arnaldo Carvalho de Melo authored
    Call it 'nr', as in this context it should be expressive enough, i.e.:
    
      # perf trace -e sched:*waking/nr=8,call-graph=fp/
         0.000 :0/0 sched:sched_waking:comm=rcu_sched pid=10 prio=120 target_cpu=001
                                           try_to_wake_up ([kernel.kallsyms])
                                           sched_clock ([kernel.kallsyms])
         3.933 :0/0 sched:sched_waking:comm=rcu_sched pid=10 prio=120 target_cpu=001
                                           try_to_wake_up ([kernel.kallsyms])
                                           sched_clock ([kernel.kallsyms])
         3.970 IPDL Backgroun/3622 sched:sched_waking:comm=Gecko_IOThread pid=3569 prio=120 target_cpu=003
                                           try_to_wake_up ([kernel.kallsyms])
                                           __libc_write (/usr/lib64/libpthread-2.26.so)
        20.069 IPDL Backgroun/3622 sched:sched_waking:comm=Gecko_IOThread pid=3569 prio=120 target_cpu=003
                                           try_to_wake_up ([kernel.kallsyms])
                                           __libc_write (/usr/lib64/libpthread-2.26.so)
        37.170 IPDL Backgroun/3622 sched:sched_waking:comm=Gecko_IOThread pid=3569 prio=120 target_cpu=003
                                           try_to_wake_up ([kernel.kallsyms])
                                           __libc_write (/usr/lib64/libpthread-2.26.so)
        53.267 IPDL Backgroun/3622 sched:sched_waking:comm=Gecko_IOThread pid=3569 prio=120 target_cpu=003
                                           try_to_wake_up ([kernel.kallsyms])
                                           __libc_write (/usr/lib64/libpthread-2.26.so)
        70.365 IPDL Backgroun/3622 sched:sched_waking:comm=Gecko_IOThread pid=3569 prio=120 target_cpu=003
                                           try_to_wake_up ([kernel.kallsyms])
                                           __libc_write (/usr/lib64/libpthread-2.26.so)
        75.781 Web Content/3649 sched:sched_waking:comm=JS Helper pid=3670 prio=120 target_cpu=000
                                           try_to_wake_up ([kernel.kallsyms])
                                           try_to_wake_up ([kernel.kallsyms])
                                           wake_up_q ([kernel.kallsyms])
                                           futex_wake ([kernel.kallsyms])
                                           do_futex ([kernel.kallsyms])
                                           __x64_sys_futex ([kernel.kallsyms])
                                           do_syscall_64 ([kernel.kallsyms])
                                           entry_SYSCALL_64_after_hwframe ([kernel.kallsyms])
                                           pthread_cond_signal@@GLIBC_2.3.2 (/usr/lib64/libpthread-2.26.so)
      #
    
      # perf trace -e sched:*switch/nr=2/,block:*_plug/nr=4/,block:*_unplug/nr=1/,net:*dev_queue/nr=3,max-stack=16/
         0.000 :0/0 sched:sched_switch:swapper/0:0 [120] S ==> trace:3367 [120]
         0.046 :0/0 sched:sched_switch:swapper/1:0 [120] S ==> kworker/u16:58:2722 [120]
       570.670 irq/50-iwlwifi/680 net:net_dev_queue:dev=wlp3s0 skbaddr=0xffff93498051ef00 len=66
                                           __dev_queue_xmit ([kernel.kallsyms])
      1106.141 jbd2/dm-0-8/476 block:block_plug:[jbd2/dm-0-8]
      1106.175 jbd2/dm-0-8/476 block:block_unplug:[jbd2/dm-0-8] 1
      1618.088 kworker/u16:30/2694 block:block_plug:[kworker/u16:30]
      1810.000 :0/0 net:net_dev_queue:dev=vnet0 skbaddr=0xffff93498051ef00 len=52
                                           __dev_queue_xmit ([kernel.kallsyms])
      3857.974 :0/0 net:net_dev_queue:dev=vnet0 skbaddr=0xffff93498051f900 len=52
                                           __dev_queue_xmit ([kernel.kallsyms])
      4790.277 jbd2/dm-2-8/748 block:block_plug:[jbd2/dm-2-8]
      4790.448 jbd2/dm-2-8/748 block:block_plug:[jbd2/dm-2-8]
      #
    
    The global --max-events has precendence:
    
      # trace --max-events 3 -e sched:*switch/nr=2/,block:*_plug/nr=4/,block:*_unplug/nr=1/,net:*dev_queue/nr=3,max-stack=16/
         0.000 :0/0 sched:sched_switch:swapper/0:0 [120] S ==> qemu-system-x86:2252 [120]
         0.029 qemu-system-x8/2252 sched:sched_switch:qemu-system-x86:2252 [120] D ==> swapper/0:0 [120]
        58.047 DNS Res~er #14/31661 net:net_dev_queue:dev=wlp3s0 skbaddr=0xffff9346966af100 len=84
                                           __dev_queue_xmit ([kernel.kallsyms])
                                           __libc_send (/usr/lib64/libpthread-2.26.so)
      #
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: https://lkml.kernel.org/n/tip-s4jswltvh660ughvg9nwngah@git.kernel.org
    
    
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    a9c5e6c1