All of lore.kernel.org
 help / color / mirror / Atom feed
* perf not showing me call graph for memcpy no matter what
@ 2021-12-16 13:37 Timothy Miller
  2021-12-16 13:54 ` Timothy Miller
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Timothy Miller @ 2021-12-16 13:37 UTC (permalink / raw)
  To: linux-perf-users

Hi,

I am doing some software profiling on an aarch64 system, and I’m using the Linux perf tool. The problem I’m running into is that “__GI___memcpy_simd” keeps showing up as the function with the most CPU usage.

Unfortunately, no matter what I do, this function keeps showing up as orphaned. That is, I cannot get a stack trace for it so I can find out who is calling it.

I have tried using dwarf mode, but it always gets overloaded.

I have tried using lbr mode, but I get the following error:
   Error:
   PMU Hardware doesn't support sampling/overflow-interrupts.

I’ve rebuilt my application and all relevant libraries with -no-omit-frame-pointer so that I could use the default frame pointer mode. Unfortunately, I still can’t get a call graph for this function.

I emailed the glibc mailing list about this, trying to find out how to work around this problem, perhaps adding frame pointer to the assembly implementation of memcpy. They suggested I try attaching a debugger, and I’ve found that I can get stack traces just fine. They suggest that I seem to be running into some kind of bug in perf. 

Any help/advice would be appreciated.

Thanks.


^ permalink raw reply	[flat|nested] 6+ messages in thread
* perf not showing me call graph for memcpy no matter what.
@ 2021-12-15 23:47 Timothy Miller
  0 siblings, 0 replies; 6+ messages in thread
From: Timothy Miller @ 2021-12-15 23:47 UTC (permalink / raw)
  To: linux-perf-users

Hi,

I am doing some software profiling on an aarch64 system, and I’m using the Linux perf tool. The problem I’m running into is that “__GI___memcpy_simd” keeps showing up as the function with the most CPU usage.

Unfortunately, no matter what I do, this function keeps showing up as orphaned. That is, I cannot get a stack trace for it so I can find out who is calling it.

I have tried using dwarf mode, but it always gets overloaded.

I have tried using lbr mode, but I get the following error:
    Error:
    PMU Hardware doesn't support sampling/overflow-interrupts.

I’ve rebuilt my application and all relevant libraries with -no-omit-frame-pointer so that I could use the default frame pointer mode. Unfortunately, I still can’t get a call graph for this function.

I emailed the glibc mailing list about this, trying to find out how to work around this problem, perhaps adding frame pointer to the assembly implementation of memcpy. They suggested I try attaching a debugger, and I’ve found that I can get stack traces just fine. They suggest that I seem to be running into some kind of bug in perf. 

Any help/advice would be appreciated.

Thanks.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-12-18 12:47 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-16 13:37 perf not showing me call graph for memcpy no matter what Timothy Miller
2021-12-16 13:54 ` Timothy Miller
2021-12-16 17:23 ` James Clark
2021-12-17  9:16 ` Milian Wolff
     [not found]   ` <7319C632-64B3-419D-B46A-EA42D2A63CDD@icloud.com>
2021-12-18 12:47     ` Milian Wolff
  -- strict thread matches above, loose matches on Subject: below --
2021-12-15 23:47 Timothy Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.