Re: [PATCH 2/2 v2] ftrace: document basic ftracer/ftracer graphneeds
From: Wu Zhangjin
Date: Sun Jun 14 2009 - 12:09:50 EST
hi, Mike
> >> +For information on how to implement prepare_ftrace_return(), simply look at
> >> +the x86 version. The only architecture-specific piece in it is the setup of
> >> +the fault recovery table (the asm(...) code). The rest should be the same
> >> +across architectures.
> >> +
> >
> > and the fault recovery table is not needed.
>
> i dont have one for the Blackfin port, but that's more because there
> is no fault recovery support in the Blackfin port ;)
>
> > In reality, the prepare_ftrace_return() can have the same arguments as
> > ftrace_trace_function()
> > ...
> > as i know, prepare_ftrace_return() is used to check whether the calling
> > function expect to trace, if yes, return the 'hook' function
> > &return_to_handler, otherwise, return back to the parent_ip directly.
> > so, here, i think there is no need to transfer the data via address, but
> > just using the same arguments like ftrace_trace_function does.
>
> hmm, that would make the implementation simpler, but i dont think you
> could do that if you implemented the fault handler. i cant really
> speak as to the requirement of the fault handler as i dont really know
> what/how it works -- i can only guess at they arent used in any way
> for Blackfin systems.
>
> > unsigned long
> > prepare_ftrace_return(unsgined long ip, unsigned long parent_ip)
> > {
> > [...]
> > if (ftrace_push_return_trace(parent_ip, ip, &trace.depth) == -EBUSY)
> > return parent_ip;
> >
> > if (ftrace_graph_entry(&trace))
> > return (unsigned long)&return_to_handler;
> >
> > [...]
> >
> > return parent_ip;
> > }
> >
> > if using the above method, the fault recovery table is not needed again.
>
> and it would allow us to move this code into the common ftrace
> framework for people who dont do fault handlers.
>
Perhaps I miss something here? otherwise, this fault handler is not
needed if not transfer the data via address and not modify the data in
the place *address accordingly.
best regards,
Wu Zhangjin
--
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/