Re: [PATCH 16/35] perf annotate: Add samples into struct annotation_line

From: Ravi Bangoria
Date: Tue Nov 14 2017 - 05:15:30 EST


Hi Jiri,

On 11/14/2017 03:01 PM, Jiri Olsa wrote:
On Mon, Nov 13, 2017 at 09:14:38PM +0100, Jiri Olsa wrote:
On Mon, Nov 13, 2017 at 09:16:20PM +0530, Ravi Bangoria wrote:
Hi Jiri,

This patch seems to be causing segfault with "perf top --stdio".

Steps to reproduce:
1. start "perf top --stdio" in one terminal
2. run some simple workload in another terminal, let it get finished.
3. annotate function from previous workload in perf top (press 'a' followed
by 's')

Perf will crash with:

 perf: Segmentation fault
 Obtained 8 stack frames.
 ./perf(sighandler_dump_stack+0x3e) [0x4f1b6e]
 /lib64/libc.so.6(+0x36a7f) [0x7ff3aa7e4a7f]
 ./perf() [0x4a27fd]
 ./perf(symbol__annotate+0x199) [0x4a4439]
 ./perf() [0x44e32d]
 ./perf() [0x44f098]
 /lib64/libpthread.so.0(+0x736c) [0x7ff3acee836c]
 /lib64/libc.so.6(clone+0x3e) [0x7ff3aa8bee1e]

Can you please check.
hum, I'm getting following crash after resizing the terminal window:

perf: Floating point exception
Obtained 8 stack frames.
./perf(dump_stack+0x2e) [0x510c89]
./perf(sighandler_dump_stack+0x2e) [0x510d69]
/lib64/libc.so.6(+0x36a80) [0x7f9419588a80]
./perf(perf_top__header_snprintf+0x208) [0x4f42c1]
./perf() [0x453c09]
./perf() [0x454ddb]
/lib64/libpthread.so.0(+0x736d) [0x7f941bc8c36d]
/lib64/libc.so.6(clone+0x3f) [0x7f9419662e1f]
Floating point exception (core dumped)

working on fix
so my crash is caused by bogus resize code, I have it working with fix for
memory corruption happening in SIGWINCH signal handler (attached)
could you please check if that fixes the code for you?

Yes, this fixes the crash caused by resize.

But original crash I reported is still there. Issue seems to be with evsel
being NULL and we are trying to de-reference it somewhere inside
annotation_line__new().

Will try to spend more time on it.

-Ravi