(2012/07/12 4:50), Steven Rostedt wrote: > From: Steven Rostedt <[email protected]> > > Add a way to have different functions calling different trampolines. > If a ftrace_ops wants regs saved on the return, then have only the > functions with ops registered to save regs. Functions registered by > other ops would not be affected, unless the functions overlap. > > If one ftrace_ops registered functions A, B and C and another ops > registered fucntions to save regs on A, and D, then only functions > A and D would be saving regs. Function B and C would work as normal. > Although A is registered by both ops: normal and saves regs; this is fine > as saving the regs is needed to satisfy one of the ops that calls it > but the regs are ignored by the other ops function. > > x86_64 implements the full regs saving, and i386 just passes a NULL > for regs to satisfy the ftrace_ops passing. Where an arch must supply > both regs and ftrace_ops parameters, even if regs is just NULL. > > It is OK for an arch to pass NULL regs. All function trace users that > require regs passing must add the flag FTRACE_OPS_FL_SAVE_REGS when > registering the ftrace_ops. If the arch does not support saving regs > then the ftrace_ops will fail to register. The flag > FTRACE_OPS_FL_SAVE_REGS_IF_SUPPORTED may be set that will prevent the > ftrace_ops from failing to register. In this case, the handler may > either check if regs is not NULL or check if ARCH_SUPPORTS_FTRACE_SAVE_REGS. > If the arch supports passing regs it will set this macro and pass regs > for ops that request them. All other archs will just pass NULL.
OK, this is good for me:) Reviewed-by: Masami Hiramatsu <[email protected]> Thank you! > > Cc: Alexander van Heukelum <[email protected]> > Signed-off-by: Steven Rostedt <[email protected]> > --- -- Masami HIRAMATSU Software Platform Research Dept. Linux Technology Center Hitachi, Ltd., Yokohama Research Laboratory E-mail: [email protected] -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

