Re: perf tool: About "perf arm64: Inject missing frames when using 'perf record --call-graph=fp'"

From: John Garry
Date: Wed Apr 06 2022 - 09:49:55 EST


On 06/04/2022 10:08, James Clark wrote:


On 05/04/2022 15:04, John Garry wrote:
Hi Alexandre,

I notice that with commit b9f6fbb3b2c2 ("perf arm64: Inject missing frames when using 'perf record --call-graph=fp'") that I get messages spewing the console when running perf record+report, as below:

john@ubuntu:~/linux$sudo tools/perf/perf record -ag fio null12.fio
john@ubuntu:~/linux$sudo tools/perf/perf report > report
unwind: can't read reg 29
unwind: can't read reg 29
unwind: can't read reg 29
unwind: can't read reg 29
...

Do you know the possible cause? I haven't checked...

Hi John,

I'm going to look into this today.

Great

I expect the cause is because we only record
the link register for this change and then do a best effort unwind to see if
we can get the return address just from that. So I don't think this is a major issue,
probably the outcome will be that I mask any of these errors just for this call
to libunwind that we added. The other main call to libunwind should still print
these errors.

One thing that is interesting is why we didn't see this when we were testing
the patch before, and we've also found it a little bit difficult to reproduce here.
So there might be more to it than just masking the error, but I'm not sure yet.

Either way, I don't expect that any unwinding is broken, just that it's
printing an annoying message.

Yeah, the actual ouput looks ok at a glance. I really didn't check much.

Thanks,
John