Re: [GIT PULL] perf fixes

From: Hagen Paul Pfeifer
Date: Fri Jun 22 2012 - 15:06:29 EST


* Linus Torvalds | 2012-06-22 11:52:43 [-0700]:

>So even stubbed out, it's quite noticeable. The call causes the
>function prologue to change quite a bit.
>
>That's actually especially true with newer versions of gcc that
>*finally* seem to have done the "don't always generate the full
>prologue if some case doesn't need it" optimization. So functions that
>have early-out conditions (quite common) will exit before even having
>done the prologue, and without doing the whole frame pointer setup
>etc.
>
>Except if mcount generation is on. Then gcc will always do the
>prologue and frame pointer setup before doing the mcount, because
>mcount wants it.
>
>So it really isn't just the extra call instruction.
>
>I may be more sensitive to this than most, because I look at profiles
>and the function prologue just looks very ugly with the call mcount
>thing. Ugh.

Yes, ugh. Even Stevens -mfentry replacement do not change things here. Maybe
this performance problem should addressed on another level: distributors
should build there kernel with disabled ftrace support. Kprobes and function
tracing should be sufficient for 98% of their customers.

I see no compiler (gcc) way around this performance issue. Maybe you/Steven
should restart a G+ poll ... ;)

Hagen

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/