• Tiezhu Yang's avatar
    perf top: Skip side-band event setup if HAVE_LIBBPF_SUPPORT is not set · 0c5f1acc
    Tiezhu Yang authored
    When I execute 'perf top' without HAVE_LIBBPF_SUPPORT, there exists the
    following segmentation fault, skip the side-band event setup to fix it,
    this is similar with commit 1101c872 ("perf record: Skip side-band
    event setup if HAVE_LIBBPF_SUPPORT is not set").
    
      [yangtiezhu@linux perf]$ ./perf top
      <SNIP>
      perf: Segmentation fault
      Obtained 6 stack frames.
      ./perf(sighandler_dump_stack+0x5c) [0x12011b604]
      [0xffffffc010]
      ./perf(perf_mmap__read_init+0x3e) [0x1201feeae]
      ./perf() [0x1200d715c]
      /lib64/libpthread.so.0(+0xab9c) [0xffee10ab9c]
      /lib64/libc.so.6(+0x128f4c) [0xffedc08f4c]
      Segmentation fault
      [yangtiezhu@linux perf]$
    
    I use git bisect to find commit b38d85ef ("perf bpf: Decouple
    creating the evlist from adding the SB event") is the first bad commit,
    so also add the Fixes tag.
    
    Committer testing:
    
    First build perf explicitely disabling libbpf:
    
      $ make NO_LIBBPF=1 O=/tmp/build/perf -C tools/perf install-bin && perf test python
    
    Now make sure it isn't linked:
    
      $ perf -vv | grep -w bpf
                       bpf: [ OFF ]  # HAVE_LIBBPF_SUPPORT
      $
      $ nm ~/bin/perf | grep libbpf
      $
    
    And now try to run 'perf top':
    
      # perf top
      perf: Segmentation fault
      -------- backtrace --------
      perf[0x5bcd6d]
      /lib64/libc.so.6(+0x3ca6f)[0x7fd0f5a66a6f]
      perf(perf_mmap__read_init+0x1e)[0x5e1afe]
      perf[0x4cc468]
      /lib64/libpthread.so.0(+0x9431)[0x7fd0f645a431]
      /lib64/libc.so.6(clone+0x42)[0x7fd0f5b2b912]
      #
    
    Applying this patch fixes the issue.
    
    Fixes: b38d85ef ("perf bpf: Decouple creating the evlist from adding the SB event")
    Signed-off-by: default avatarTiezhu Yang <yangtiezhu@loongson.cn>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Xuefeng Li <lixuefeng@loongson.cn>
    Link: http://lore.kernel.org/lkml/1597753837-16222-1-git-send-email-yangtiezhu@loongson.cnSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    0c5f1acc
builtin-top.c 47.2 KB