Re: [RFC][PATCH 1/3] ftrace/x86: Add dynamic allocated trampoline for ftrace_ops

From: Masami Hiramatsu
Date: Fri Jul 04 2014 - 09:32:54 EST


(2014/07/04 5:07), Steven Rostedt wrote:
> +
> +void arch_ftrace_update_trampoline(struct ftrace_ops *ops)
> +{
> + unsigned char *new;
> + unsigned long start_offset;
> + unsigned long call_offset;
> + unsigned long offset;
> + unsigned long ip;
> + int ret;
> +
> + if (ops->trampoline) {
> + /*
> + * The ftrace_ops caller may set up its own trampoline.
> + * In such a case, this code must not modify it.
> + */
> + if (!(ops->flags & FTRACE_OPS_FL_ALLOC_TRAMP))
> + return;

Just a question, what happen if the ftrace_ops caller sets up a trampoline which is
not compatible to the ftrace's trampoline, and the ftrace_ops conflicts on a IP with other
ftrace_ops? I guess in that case ftrace will use the loop callback on the IP, but since
the trampoline is not compatible, the result will not be same, is that right? :)

Thank you,

--
Masami HIRAMATSU
Software Platform Research Dept. Linux Technology Research Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@xxxxxxxxxxx


--
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/