Message ID | 20220706161231.085a83da@gandalf.local.home (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ftrace: Be more specific about arch impact when function tracer is enabled | expand |
On Wed, Jul 06, 2022 at 04:12:31PM -0400, Steven Rostedt wrote: > From: Steven Rostedt (Google) <rostedt@goodmis.org> > > It was brought up that on ARMv7, that because the FUNCTION_TRACER does not > use nops to keep function tracing disabled because of the use of a link > register, it does have some performance impact. > > The start of functions when -pg is used to compile the kernel is: > > push {lr} > bl 8010e7c0 <__gnu_mcount_nc> > > When function tracing is tuned off, it becomes: > > push {lr} > add sp, sp, #4 > > Which just puts the stack back to its normal location. But these two > instructions at the start of every function does incur some overhead. > > Be more honest in the Kconfig FUNCTION_TRACER description and specify that > the overhead being in the noise was x86 specific, but other architectures > may vary. > > Link: https://lore.kernel.org/all/20220705105416.GE5208@pengutronix.de/ > > Reported-by: Sascha Hauer <sha@pengutronix.de> > Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org> > --- Thanks Steven Acked-by: Sascha Hauer <s.hauer@pengutronix.de> Sascha > diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig > index debbbb083286..ccd6a5ade3e9 100644 > --- a/kernel/trace/Kconfig > +++ b/kernel/trace/Kconfig > @@ -194,7 +194,8 @@ config FUNCTION_TRACER > sequence is then dynamically patched into a tracer call when > tracing is enabled by the administrator. If it's runtime disabled > (the bootup default), then the overhead of the instructions is very > - small and not measurable even in micro-benchmarks. > + small and not measurable even in micro-benchmarks (at least on > + x86, but may have impact on other architectures). > > config FUNCTION_GRAPH_TRACER > bool "Kernel Function Graph Tracer" >
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig index debbbb083286..ccd6a5ade3e9 100644 --- a/kernel/trace/Kconfig +++ b/kernel/trace/Kconfig @@ -194,7 +194,8 @@ config FUNCTION_TRACER sequence is then dynamically patched into a tracer call when tracing is enabled by the administrator. If it's runtime disabled (the bootup default), then the overhead of the instructions is very - small and not measurable even in micro-benchmarks. + small and not measurable even in micro-benchmarks (at least on + x86, but may have impact on other architectures). config FUNCTION_GRAPH_TRACER bool "Kernel Function Graph Tracer"