linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: William Cohen <wcohen@redhat.com>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: linux-perf-users@vger.kernel.org, Ingo Molnar <mingo@kernel.org>
Subject: Re: "perf list" built from git repository Segmentation fault with 4.4.0 kernels
Date: Fri, 11 Dec 2015 10:08:40 -0500	[thread overview]
Message-ID: <566AE6F8.10500@redhat.com> (raw)
In-Reply-To: <20151211131027.GD6843@kernel.org>

On 12/11/2015 08:10 AM, Arnaldo Carvalho de Melo wrote:
> Em Thu, Dec 10, 2015 at 05:54:03PM -0500, William Cohen escreveu:
> 
>> I have noticed that with the 4.4.0 kernels "perf list" has been
>> segfaulting on both aarch64 and x86_64.  Below is the failure on
>> fedora rawhide running on x86_64:
> 
> Ok, this was fixed, but just on the perf/core branch:
> 
> "perf list: Add support for PERF_COUNT_SW_BPF_OUT"
> https://git.kernel.org/cgit/linux/kernel/git/acme/linux.git/commit/tools/perf/util/parse-events.c?h=perf/core&id=bae9cc41105b9edd74d68a9636be2ba240e74b9e
> 
> And then this one on top to avoid such things in the future:
> "perf list: Robustify event printing routine"
> https://git.kernel.org/cgit/linux/kernel/git/acme/linux.git/commit/tools/perf/util/parse-events.c?h=perf/core&id=e37df6c76cb19971f1228bfaff504d8a3ea6f748
> 
> I'll cherry-pick those and push to Ingo.
> 
> Thanks for the report!
> 
> - Arnaldo

Thanks Arnaldo.  Glad to hear that this is already addressed and just needed to be pulled into the appropriate git repo.

-Will


> 
>> [wcohen@localhost ~]$ rpm -q perf
>> perf-4.4.0-0.rc4.git0.1.fc24.x86_64
>> [wcohen@localhost ~]$ gdb /bin/perf ./core.2110 
>> GNU gdb (GDB) Fedora 7.10.50.20151113-33.fc24
>> Copyright (C) 2015 Free Software Foundation, Inc.
>> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
>> This is free software: you are free to change and redistribute it.
>> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
>> and "show warranty" for details.
>> This GDB was configured as "x86_64-redhat-linux-gnu".
>> Type "show configuration" for configuration details.
>> For bug reporting instructions, please see:
>> <http://www.gnu.org/software/gdb/bugs/>.
>> Find the GDB manual and other documentation resources online at:
>> <http://www.gnu.org/software/gdb/documentation/>.
>> For help, type "help".
>> Type "apropos word" to search for commands related to "word"...
>> Reading symbols from /bin/perf...Reading symbols from /usr/lib/debug/usr/bin/perf.debug...done.
>> done.
>> [New LWP 2110]
>> [Thread debugging using libthread_db enabled]
>> Using host libthread_db library "/lib64/libthread_db.so.1".
>> Core was generated by `perf list'.
>> Program terminated with signal SIGSEGV, Segmentation fault.
>> #0  0x000055b1fc97fdce in print_symbol_events (type=<optimized out>, 
>>     syms=0x55b1fcd81580 <event_symbols_sw+160>, max=<optimized out>, 
>>     name_only=<optimized out>, event_glob=<optimized out>)
>>     at util/parse-events.c:1895
>> 1895			if (!name_only && strlen(syms->alias))
>> Missing separate debuginfos, use: dnf debuginfo-install bzip2-libs-1.0.6-19.fc24.x86_64 nss-softokn-freebl-3.21.0-3.fc24.x86_64
>> (gdb) where
>> #0  0x000055b1fc97fdce in print_symbol_events (type=<optimized out>, 
>>     syms=0x55b1fcd81580 <event_symbols_sw+160>, max=<optimized out>, 
>>     name_only=<optimized out>, event_glob=<optimized out>)
>>     at util/parse-events.c:1895
>> #1  print_events (event_glob=event_glob@entry=0x0, name_only=false)
>>     at util/parse-events.c:1943
>> #2  0x000055b1fc90a63e in cmd_list (argc=0, argv=0x7ffde1523f80, 
>>     prefix=<optimized out>) at builtin-list.c:43
>> #3  0x000055b1fc95c413 in run_builtin (p=0x55b1fcd803d8 <commands+120>, 
>>     argc=1, argv=0x7ffde1523f80) at perf.c:386
>> #4  0x000055b1fc8fe308 in handle_internal_command (argv=0x7ffde1523f80, argc=1)
>>     at perf.c:447
>> #5  run_argv (argv=0x7ffde1523d10, argcp=0x7ffde1523d1c) at perf.c:491
>> #6  main (argc=1, argv=0x7ffde1523f80) at perf.c:608
>> (gdb) 
>>
>>
>> I did a git bisect on the kernel source code to find out when "perf list" broke and the git bisect pointed to the following commit causing the problem:
>>
>> # git bisect good
>> a43eec304259a6c637f4014a6d4767159b6a3aa3 is the first bad commit
>> commit a43eec304259a6c637f4014a6d4767159b6a3aa3
>> Author: Alexei Starovoitov <ast@plumgrid.com>
>> Date:   Tue Oct 20 20:02:34 2015 -0700
>>
>>     bpf: introduce bpf_perf_event_output() helper
>>     
>>     This helper is used to send raw data from eBPF program into
>>     special PERF_TYPE_SOFTWARE/PERF_COUNT_SW_BPF_OUTPUT perf_event.
>>     User space needs to perf_event_open() it (either for one or all cpus) and
>>     store FD into perf_event_array (similar to bpf_perf_event_read() helper)
>>     before eBPF program can send data into it.
>>     
>>     Today the programs triggered by kprobe collect the data and either store
>>     it into the maps or print it via bpf_trace_printk() where latter is the debug
>>     facility and not suitable to stream the data. This new helper replaces
>>     such bpf_trace_printk() usage and allows programs to have dedicated
>>     channel into user space for post-processing of the raw data collected.
>>     
>>     Signed-off-by: Alexei Starovoitov <ast@kernel.org>
>>     Signed-off-by: David S. Miller <davem@davemloft.net>
>>
>> :040000 040000 322abd03170df11e43da73d3fa4f74f1826788e9 14f3ee14b7fb4b6c76daf18e026cf67acd3154fa M	include
>> :040000 040000 f84baec2884fe97ec501ae8d45bbb8a7aad3a578 ea440aeb13f1dd25aa8f2e1dadfc32dbf4b3d2b3 M	kernel
>>
>>
>> -Will
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-perf-users" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html

      reply	other threads:[~2015-12-11 15:08 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-10 22:54 "perf list" built from git repository Segmentation fault with 4.4.0 kernels William Cohen
2015-12-11 13:10 ` Arnaldo Carvalho de Melo
2015-12-11 15:08   ` William Cohen [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=566AE6F8.10500@redhat.com \
    --to=wcohen@redhat.com \
    --cc=acme@kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mingo@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).