• Ravi Bangoria's avatar
    perf tool: Provide an option to print perf_event_open args and return value · ccd26741
    Ravi Bangoria authored
    Perf record with verbose=2 already prints this information along with
    whole lot of other traces which requires lot of scrolling. Introduce
    an option to print only perf_event_open() arguments and return value.
    
    Sample o/p:
    
      $ perf --debug perf-event-open=1 record -- ls > /dev/null
      ------------------------------------------------------------
      perf_event_attr:
        size                             112
        { sample_period, sample_freq }   4000
        sample_type                      IP|TID|TIME|PERIOD
        read_format                      ID
        disabled                         1
        inherit                          1
        exclude_kernel                   1
        mmap                             1
        comm                             1
        freq                             1
        enable_on_exec                   1
        task                             1
        precise_ip                       3
        sample_id_all                    1
        exclude_guest                    1
        mmap2                            1
        comm_exec                        1
        ksymbol                          1
        bpf_event                        1
      ------------------------------------------------------------
      sys_perf_event_open: pid 4308  cpu 0  group_fd -1  flags 0x8 = 4
      sys_perf_event_open: pid 4308  cpu 1  group_fd -1  flags 0x8 = 5
      sys_perf_event_open: pid 4308  cpu 2  group_fd -1  flags 0x8 = 6
      sys_perf_event_open: pid 4308  cpu 3  group_fd -1  flags 0x8 = 8
      sys_perf_event_open: pid 4308  cpu 4  group_fd -1  flags 0x8 = 9
      sys_perf_event_open: pid 4308  cpu 5  group_fd -1  flags 0x8 = 10
      sys_perf_event_open: pid 4308  cpu 6  group_fd -1  flags 0x8 = 11
      sys_perf_event_open: pid 4308  cpu 7  group_fd -1  flags 0x8 = 12
      ------------------------------------------------------------
      perf_event_attr:
        type                             1
        size                             112
        config                           0x9
        watermark                        1
        sample_id_all                    1
        bpf_event                        1
        { wakeup_events, wakeup_watermark } 1
      ------------------------------------------------------------
      sys_perf_event_open: pid -1  cpu 0  group_fd -1  flags 0x8
      sys_perf_event_open failed, error -13
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.002 MB perf.data (9 samples) ]
    
    Committer notes:
    
    Just like the 'verbose' variable this new 'debug_peo_args' needs to be
    added to util/python.c, since we don't link the debug.o file in the
    python binding, which ended up making 'perf test python' fail with:
    
      # perf test -v python
      18: 'import perf' in python                               :
      --- start ---
      test child forked, pid 19237
      Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
      ImportError: /tmp/build/perf/python/perf.so: undefined symbol: debug_peo_args
      test child finished with -1
      ---- end ----
      'import perf' in python: FAILED!
      #
    
    After adding that new variable to util/python.c:
    
      # perf test -v python
      18: 'import perf' in python                               :
      --- start ---
      test child forked, pid 22364
      test child finished with 0
      ---- end ----
      'import perf' in python: Ok
      #
    Signed-off-by: default avatarRavi Bangoria <ravi.bangoria@linux.ibm.com>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
    Link: http://lore.kernel.org/lkml/20191108094128.28769-1-ravi.bangoria@linux.ibm.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    ccd26741
evsel.c 63.7 KB