All of lore.kernel.org
 help / color / mirror / Atom feed
From: James Clark <james.clark@arm.com>
To: Timothy Miller <theosib@icloud.com>, linux-perf-users@vger.kernel.org
Cc: German Gomez <german.gomez@arm.com>
Subject: Re: perf not showing me call graph for memcpy no matter what
Date: Thu, 16 Dec 2021 17:23:51 +0000	[thread overview]
Message-ID: <2edea69f-f1b2-f970-75c0-99bc9ae084b9@arm.com> (raw)
In-Reply-To: <55BDE53A-EF97-4EF6-80C4-11821372A842@icloud.com>



On 16/12/2021 13:37, Timothy Miller wrote:
> 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.
>
Hi Timothy,

Do you have a full reproducer? Maybe one that works in a fresh docker container, and with what you expect to see vs what you actually see.

What version of perf and libunwind are you using?

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

Not sure what you mean by 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.

Even with that option the compiler will still omit frame pointers if there is absolutely no need for them,
for example for a leaf function call. Although it doesn't sound exactly like that's your issue.

You could try the patch "[PATCH v4 0/6] Fix missing leaf-function callers when recording" which is currently on
the mailing list, but that will only give you the caller of the last function. It sounds like you have more
frames missing?

> 
> 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.
> 
> 

Thanks
James

  parent reply	other threads:[~2021-12-16 17:23 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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

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=2edea69f-f1b2-f970-75c0-99bc9ae084b9@arm.com \
    --to=james.clark@arm.com \
    --cc=german.gomez@arm.com \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=theosib@icloud.com \
    /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 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.