Messages in this thread | | | Date | Tue, 10 Nov 2009 08:43:52 -0800 | From | David Daney <> | Subject | Re: [PATCH v7 04/17] tracing: add static function tracer support for MIPS |
| |
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
| |