From: Paul Mackerras <paulus@samba.org>
To: David Miller <davem@davemloft.net>
Cc: fweisbec@gmail.com, mingo@elte.hu, linux-arch@vger.kernel.org
Subject: Re: perf_arch_fetch_caller_regs...
Date: Fri, 19 Mar 2010 15:32:02 +1100 [thread overview]
Message-ID: <20100319043202.GA3850@brick.ozlabs.ibm.com> (raw)
In-Reply-To: <20100318.210241.179917441.davem@davemloft.net>
On Thu, Mar 18, 2010 at 09:02:41PM -0700, David Miller wrote:
>
> Can we please remove the CALLER_ADDR0 et al. evaluations at the top
> level in perf_fetch_caller_regs()?
>
> I take great pains to avoid having to flush the register windows on
> sparc64 even when fetching callchains et al and any
> __builtin_return_address() with an argument greater than zero is going
> to force a register window flush to get emitted by gcc undoing all of
> my hard work :-)
>
> You guys can put it into the x86 perf_fetch_caller_regs() or similar.
>
> If you need it to be evaluated at the call site, make the inline
> overridable by the platform headers.
>
> I noticed that the powerpc assembler Paul posted the past few days
> ignores this "ip" arg passed down and computes it by hand as it
> walks up the stack chain in assembler. PowerPC therefore might be
> getting similar inefficiences due to this CALLER_ADDR? stuff.
Well, it would except that CALLER_ADDR1, 2, etc. turn into (0) on
powerpc because we use the generic definition and we don't define
CONFIG_FRAME_POINTER (it's meaningless on powerpc because the ABI
defines that each stack frame always has a pointer to the previous
frame).
I should fix CALLER_ADDRx on powerpc one day, then we will have the
extra inefficiency.
Paul.
next prev parent reply other threads:[~2010-03-19 4:32 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-19 4:02 perf_arch_fetch_caller_regs David Miller
2010-03-19 4:24 ` perf_arch_fetch_caller_regs Frederic Weisbecker
2010-03-19 4:47 ` perf_arch_fetch_caller_regs David Miller
2010-03-19 4:32 ` Paul Mackerras [this message]
2010-03-19 4:51 ` perf_arch_fetch_caller_regs David 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=20100319043202.GA3850@brick.ozlabs.ibm.com \
--to=paulus@samba.org \
--cc=davem@davemloft.net \
--cc=fweisbec@gmail.com \
--cc=linux-arch@vger.kernel.org \
--cc=mingo@elte.hu \
/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.