All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
To: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: "Ingo Molnar" <mingo@elte.hu>,
	linux-kernel@vger.kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Frédéric Weisbecker" <fweisbec@gmail.com>,
	"Linus Torvalds" <torvalds@linux-foundation.org>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Jan Beulich" <JBeulich@suse.com>,
	"Arjan van de Ven" <arjan@infradead.org>,
	"Alexander van Heukelum" <heukelum@fastmail.fm>,
	"Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>,
	rth <rth@redhat.com>
Subject: Re: [PATCH] x86: Use -m-omit-leaf-frame-pointer to shrink text size
Date: Fri, 16 Dec 2011 11:20:17 +0100	[thread overview]
Message-ID: <1324030817.18942.76.camel@twins> (raw)
In-Reply-To: <4EEB0E14.9050505@goop.org>

On Fri, 2011-12-16 at 01:23 -0800, Jeremy Fitzhardinge wrote:
> On 12/16/2011 12:53 AM, Ingo Molnar wrote:
> > * Ingo Molnar <mingo@elte.hu> wrote:
> >
> >> [...]
> >>
> >> The call-chains are still intact for quality backtraces and 
> >> for call-chain profiling (perf record -g), as the backtrace 
> >> walker can deduct the full backtrace from the RIP of a leaf 
> >> function and the parent chain.
> > Hm, noticed one complication while looking at annotated assembly 
> > code in perf top. Code doing function calls from within asm() is 
> > incorrectly marked 'leaf' by GCC:
> >
> > ffffffff812b82d8 <arch_local_save_flags>:
> > ffffffff812b82d8:       ff 14 25 00 d9 c1 81    callq  *0xffffffff81c1d900
> > ffffffff812b82df:       c3                      retq   
> >
> > So all the paravirt details will have to be fixed, so that GCC 
> > is able to see that there's a real function call done inside. 
> > Jeremy, Konrad?
> 
> Um.  So the issue is that a function that contains only pvops looks like
> it's a leaf to gcc and it does some leaf-function optimisation?
> 
> How can we tell gcc the asm contains a call, or otherwise suppress the
> "leaf function" classification?
> 
> The alternative is to just make it a plain C-level indirect call, but
> then we'd lose all the patching and callee-save optimisations.
> 
> Any suggestions?

Added Richard Henderson to CC.

I only found the function __attribute__((leaf)) to explicitly mark a
function as being a leaf function, but the documentation doesn't list
the inverse of that to explicitly mark it as _not_ being one.

I haven't done a git grep on the gcc sources yet since I seem to have
misplaced my gcc.git tree.



  reply	other threads:[~2011-12-16 10:22 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-16  8:19 [PATCH] x86: Use -m-omit-leaf-frame-pointer to shrink text size Ingo Molnar
2011-12-16  8:48 ` Andrew Morton
2011-12-16  8:54   ` Ingo Molnar
2011-12-16  8:53 ` Ingo Molnar
2011-12-16  9:23   ` Jeremy Fitzhardinge
2011-12-16 10:20     ` Peter Zijlstra [this message]
2011-12-16 16:27       ` Richard Henderson
2011-12-16 11:46     ` Jan Beulich
2011-12-16 12:00       ` Ingo Molnar
2011-12-16 15:32         ` H. Peter Anvin
2011-12-16 14:01 ` Frederic Weisbecker
2011-12-16 14:06 ` Frederic Weisbecker

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=1324030817.18942.76.camel@twins \
    --to=a.p.zijlstra@chello.nl \
    --cc=JBeulich@suse.com \
    --cc=akpm@linux-foundation.org \
    --cc=arjan@infradead.org \
    --cc=fweisbec@gmail.com \
    --cc=heukelum@fastmail.fm \
    --cc=hpa@zytor.com \
    --cc=jeremy@goop.org \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=rth@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    /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.