Thread (44 messages) 44 messages, 8 authors, 2016-02-24

Re: [PATCH v8 4/8] ppc64 ftrace_with_regs configuration variables

From: Torsten Duwe <hidden>
Date: 2016-02-16 10:35:55
Also in: lkml

On Tue, Feb 16, 2016 at 09:09:16PM +1100, Michael Ellerman wrote:
On Mon, 2016-02-15 at 15:04 +0100, Torsten Duwe wrote:
quoted
If you use "-pg -mprofile-kernel", gcc seems to forget that, and omits the TOC
load, for a similar assembler calling sequence.
That's by design.
Ah, ok.
mprofile-kernel is supposed to create as little overhead as possible in the
non-traced case. All of the burden is shifted to the trace function (_mcount).
... or its helpers, see below.
The reason to do that is because modern distros always build with tracing, but
most of the time tracing will not actually be active. So we want the cost of
tracing-built-in-but-disabled to be ~zero.
Ok, that's a design goal.
quoted
That was the alternative I asked about; but given that the _mcount / ftrace_caller
trampoline hardly differs from a normal trampoline (so far), loading R2 would be the
general case, or an excessive special case handling would result.
I'm not sure I follow what you mean there at the end.
This suggests you have not yet actively debugged this problem ;-)
Requiring ftrace_caller() to load the kernel TOC is not a problem IMHO.
The problem is, you don't get to ftrace_caller in the first place :)
I think I have an easier way to do it, I'll reply to the patch with that (if it
works).
I doubt so. Either it works, _or_ it is easier ;)

To save you some work: by the design of minimal overhead you try to follow,
SQUASH_TOC_SAVE_INSN from my patches isn't sufficient. You'll need to load the
_current_ TOC _on_ the trampoline, and in turn it will be different from the regular
trampolines; and that needs to be recognised, or the normal module linker logic
won't work.

OTOH my proposed GCC change only affects a very limited number of functions...

Looking forward to your patch!

	Torsten
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help