Messages in this thread Patch in this message | | | Date | Tue, 12 May 2020 17:55:48 +0200 | From | Jiri Olsa <> | Subject | Re: perf seg fault |
| |
On Tue, May 12, 2020 at 06:45:24PM +0300, Adrian Hunter wrote: > On 12/05/20 6:10 pm, Jiri Olsa wrote: > > On Tue, May 12, 2020 at 05:58:29PM +0300, Adrian Hunter wrote: > >> Forgot to cc mailing list > >> > >> On 12/05/20 5:50 pm, Adrian Hunter wrote: > >>> Hi > >>> > >>> I am getting a seg fault from your perf/core branch, as follows: > >>> > >>> # perf record uname > >>> Linux > >>> [ perf record: Woken up 1 times to write data ] > >>> [ perf record: Captured and wrote 0.005 MB perf.data (7 samples) ] > >>> perf: Segmentation fault > >>> Obtained 6 stack frames. > >>> [0x4e75b4] > >>> [0x5d1ad0] > >>> [0x5c9860] > >>> [0x4a6e5c] > >>> [0x5cb39b] > >>> [0x76c89f] > >>> Segmentation fault > >>> > >>> It goes away with --no-bpf-event: > >>> > >>> # perf record --no-bpf-event uname > >>> Linux > >>> [ perf record: Woken up 1 times to write data ] > >>> [ perf record: Captured and wrote 0.005 MB perf.data (7 samples) ] > >>> # > >>> > >>> kernel is from the same branch > >>> > >>> # uname -a > >>> Linux buildroot 5.7.0-rc2-00028-g0fdddf5a583a #165 SMP Tue May 12 16:27:53 > >>> EEST 2020 x86_64 GNU/Linux > >>> > >>> # perf version --build-options > >>> perf version 5.6.g0fdddf5a583a > >>> dwarf: [ OFF ] # HAVE_DWARF_SUPPORT > >>> dwarf_getlocations: [ OFF ] # HAVE_DWARF_GETLOCATIONS_SUPPORT > >>> glibc: [ on ] # HAVE_GLIBC_SUPPORT > >>> gtk2: [ OFF ] # HAVE_GTK2_SUPPORT > >>> syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT > >>> libbfd: [ on ] # HAVE_LIBBFD_SUPPORT > >>> libelf: [ on ] # HAVE_LIBELF_SUPPORT > >>> libnuma: [ OFF ] # HAVE_LIBNUMA_SUPPORT > >>> numa_num_possible_cpus: [ OFF ] # HAVE_LIBNUMA_SUPPORT > >>> libperl: [ OFF ] # HAVE_LIBPERL_SUPPORT > >>> libpython: [ OFF ] # HAVE_LIBPYTHON_SUPPORT > >>> libslang: [ on ] # HAVE_SLANG_SUPPORT > >>> libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT > >>> libunwind: [ OFF ] # HAVE_LIBUNWIND_SUPPORT > >>> libdw-dwarf-unwind: [ OFF ] # HAVE_DWARF_SUPPORT > >>> zlib: [ OFF ] # HAVE_ZLIB_SUPPORT > >>> lzma: [ OFF ] # HAVE_LZMA_SUPPORT > >>> get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT > >>> bpf: [ OFF ] # HAVE_LIBBPF_SUPPORT > >>> aio: [ on ] # HAVE_AIO_SUPPORT > >>> zstd: [ OFF ] # HAVE_ZSTD_SUPPORT > >>> > >>> > >>> Any thoughts? > > > > hum, I don't see that, do you reproduce with DEBUG=1? > > to get more verbose backtrace > > It will require a kernel with support for bpf events otherwise the > --no-bpf-event option would have no effect.
ok, reproduced.. I think we need to think about better way, but this fixes the issue for me now
jirka
--- diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 4d4502b7fea0..173012a25df3 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -2564,6 +2564,10 @@ int cmd_record(int argc, const char **argv) if (quiet) perf_quiet_option(); +#ifndef HAVE_LIBBPF_SUPPORT + rec->opts.no_bpf_event = true; +#endif + /* Make system wide (-a) the default target. */ if (!argc && target__none(&rec->opts.target)) rec->opts.target.system_wide = true;
| |