• Adrian Hunter's avatar
    perf script: Fix Python support when no libtraceevent · 80c3a7d9
    Adrian Hunter authored
    Python scripting can be used without libtraceevent. In particular,
    scripting for Intel PT does not use tracepoints, and so does not need
    libtraceevent support.
    
    Alter the build and employ conditional compilation to allow Python
    scripting without libtraceevent.
    
    Example:
    
     Before:
    
        $ ldd `which perf` | grep -i python
        $ ldd `which perf` | grep -i libtraceevent
        $ perf record -e intel_pt//u uname
        Linux
        [ perf record: Woken up 1 times to write data ]
        [ perf record: Captured and wrote 0.031 MB perf.data ]
        $ perf script intel-pt-events.py |& head -3
          Error: Couldn't find script `intel-pt-events.py'
    
         See perf script -l for available scripts.
    
     After:
    
        $ ldd `which perf` | grep -i python
                libpython3.10.so.1.0 => /lib/x86_64-linux-gnu/libpython3.10.so.1.0 (0x00007f4bac400000)
        $ ldd `which perf` | grep -i libtraceevent
        $ perf script intel-pt-events.py | head
        Intel PT Branch Trace, Power Events, Event Trace and PTWRITE
             Switch In    8021/8021  [000]     11234.097713404     0/0
               perf-exec  8021/8021  [000]     11234.098041726       psb                        offset: 0x0                0 [unknown] ([unknown])
               perf-exec  8021/8021  [000]     11234.098041726       cbr                         45  freq: 4505 MHz  (161%)                0 [unknown] ([unknown])
                   uname  8021/8021  [000]     11234.098082170  branches:uH  tr strt                              0 [unknown] ([unknown]) => 7f3a8b9422b0 _start+0x0 (/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2)
                   uname  8021/8021  [000]     11234.098082379  branches:uH  tr end                    7f3a8b9422b0 _start+0x0 (/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2) => 0 [unknown] ([unknown])
                   uname  8021/8021  [000]     11234.098083629  branches:uH  tr strt                              0 [unknown] ([unknown]) => 7f3a8b9422b0 _start+0x0 (/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2)
                   uname  8021/8021  [000]     11234.098083629  branches:uH  call                      7f3a8b9422b3 _start+0x3 (/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2) => 7f3a8b943050 _dl_start+0x0 (/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2)
                   uname  8021/8021  [000]     11234.098083837  branches:uH  tr end                    7f3a8b943060 _dl_start+0x10 (/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2) => 0 [unknown] ([unknown])  IPC: 0.01 (9/938)
                   uname  8021/8021  [000]     11234.098084670  branches:uH  tr strt                              0 [unknown] ([unknown]) => 7f3a8b943060 _dl_start+0x10 (/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2)
    
    Fixes: 378ef0f5 ("perf build: Use libtraceevent from the system")
    Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: https://lore.kernel.org/r/20230315084321.14563-1-adrian.hunter@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    80c3a7d9
Build 10.1 KB