Re: [PATCH 1/2] ftrace: make dynamic ftrace more robust

From: Steven Rostedt
Date: Wed Oct 22 2008 - 08:07:34 EST



On Wed, 22 Oct 2008, Ingo Molnar wrote:
>
> > > > /* Used for MEMORY_HOTPLUG */
> > > > -#define __meminit __section(.meminit.text) __cold
> > > > +#define __meminit __section(.meminit.text) __cold notrace
> > > > #define __meminitdata __section(.meminit.data)
> > > > #define __meminitconst __section(.meminit.rodata)
> > > > #define __memexit __section(.memexit.text) __exitused __cold
> > >
> > > there's no justification given for this in the changelog and the change
> > > looks fishy.
> >
> > Sorry, I missed writing this. I had it in other patches, but forgot to
> > add the change log here. These are areas, just like the __init section
> > that I have no way ok finding out in an arch independent way, what to
> > remove from the ftrace records. So by not adding these notraces, we
> > are guaranteed to hit the warnings above!
>
> this is utterly fragile and might miss places that insert symbols into
> some of these sections manually.
>
> the robust approach is to make sure these things are never in an ftrace
> record to begin with. scripts/recordmcount.pl should be taught to only
> record places that it is _100% sure of is traceable_. Not "everything
> and we'll sort out the stuff that we think is not okay".
>
> if that needs arch dependent smarts then so be it - ftrace has to be
> enabled per arch anyway.

In that case, the only reasonable patch, until we do the above is this.

Signed-off-by: Steven Rostedt <srostedt@xxxxxxxxxx>
---
kernel/trace/Kconfig | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

Index: linux-compile.git/kernel/trace/Kconfig
===================================================================
--- linux-compile.git.orig/kernel/trace/Kconfig 2008-10-21 17:07:47.000000000 -0400
+++ linux-compile.git/kernel/trace/Kconfig 2008-10-22 08:05:40.000000000 -0400
@@ -159,10 +159,11 @@ config STACK_TRACER
Say N if unsure.

config DYNAMIC_FTRACE
- bool "enable/disable ftrace tracepoints dynamically"
+ bool "enable/disable ftrace tracepoints dynamically (BROKEN)"
depends on FTRACE
depends on HAVE_DYNAMIC_FTRACE
depends on DEBUG_KERNEL
+ depends on BROKEN
default y
help
This option will modify all the calls to ftrace dynamically
--
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/