Re: [PATCH] ftrace: use a real variable for ftrace_nop in x86

From: Ingo Molnar
Date: Mon Oct 27 2008 - 11:53:19 EST



* Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:

>
> On Fri, 24 Oct 2008, Steven Rostedt wrote:
>
> >
> > The dynamic ftrace determines which nop is safe to use at start up.
> > When it finds a safe nop for patching, it sets a pointer called ftrace_nop
> > to point to the code. All call sites are then patched to this nop.
> >
> > Later, when tracing is turned on, this ftrace_nop variable is again used
> > to compare the location to make sure it is a nop before we update it to
> > a mcount call. If this fails just once, a warning is outputed and ftrace
> > is disabled.
> >
> > Rakib Mullick noted that the code that sets up the nop is a .init section
> > where as the nop itself is in the .text section. This is needed because
> > the nop is used later on after boot up. The problem is that the test of the
> > nop jumps back to the setup code and causes a "section mismatch" warning.
> >
> > Rabik first recommended to convert the nop to .init.text, but as stated
> > above, this would fail since that text is used later.
> >
> > The real solution is to extend Rabik's patch, and to make the ftrace_nop
> > into an array, and just save the code from the assembly to this array.
>
> Rereading what I sent, I see I misspelled Rakib's name twice.
>
> Ingo, could you fix the changelog here before commiting it.

done - find the tip/tracing/urgent commit below. I also added an
Impact: line.

Ingo

---------------->