Messages in this thread | | | Date | Fri, 15 Jun 2012 17:15:20 +0900 | From | Masami Hiramatsu <> | Subject | Re: [RFC][PATCH 05/13 v2] ftrace/x86: Add separate function to save regs |
| |
(2012/06/13 7:43), Steven Rostedt wrote: > From: Steven Rostedt <srostedt@redhat.com> > > 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 and 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.
Hmm, so would you mean that user is responsible for checking whether the arch supports save_regs or not? I would rather like ftrace to check it as my patch has done. I think ARCH_SUPPORTS_FTRACE_SAVE_REGS macro checking in all handler code is something like odd...
Thank you,
-- Masami HIRAMATSU Software Platform Research Dept. Linux Technology Center Hitachi, Ltd., Yokohama Research Laboratory E-mail: masami.hiramatsu.pt@hitachi.com
| |