Re: [PATCH v7 04/17] tracing: add static function tracer supportfor MIPS

From: David Daney
Date: Tue Nov 10 2009 - 11:50:45 EST


Wu Zhangjin wrote:
Hi,

On Mon, 2009-11-09 at 16:26 -0800, David Daney wrote:
Wu Zhangjin wrote:

+ifndef CONFIG_FUNCTION_TRACER
cflags-y := -ffunction-sections
+else
+cflags-y := -mlong-calls
+endif
cflags-y += $(call cc-option, -mno-check-zero-division)
That doesn't make sense to me. Modules are already compiled with -mlong-calls. The only time you would need the entire kernel compiled with -mlong-calls is if the tracer were in a module. The logic here doesn't seem to reflect that.

Yes, I knew the module have gotten the -mlong-calls, Here we just want
to use -mlong-calls for the whole kernel, and then we get the same
_mcount stuff in the whole kernel, at last, we can use the same
scripts/recordmcount.pl and ftrace_make_nop & ftrace_make_call for the
dynamic ftracer.


-mlong-calls really degrades performance. I have seen things like 6% drop in network packet forwarding rates with -mlong-calls.

It would be better to fix all the tools so that they could handle both -mlong-calls and -mno-long-calls code.


David Daney
--
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/