From: Steven Rostedt <rostedt@goodmis.org>
To: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: linux-kernel@vger.kernel.org,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
Ananth N Mavinakayanahalli <ananth@in.ibm.com>,
"Frank Ch. Eigler" <fche@redhat.com>,
Andrew Morton <akpm@linux-foundation.org>,
Frederic Weisbecker <fweisbec@gmail.com>,
yrl.pp-manager.tt@hitachi.com
Subject: Re: Re: Re: [RFC PATCH -tip 1/9] ftrace: Add pt_regs acceptable trace callback
Date: Mon, 04 Jun 2012 11:11:27 -0400 [thread overview]
Message-ID: <1338822687.13348.516.camel@gandalf.stny.rr.com> (raw)
In-Reply-To: <4FCCCCE6.5000606@hitachi.com>
On Mon, 2012-06-04 at 23:57 +0900, Masami Hiramatsu wrote:
> > As I want all functions to pass the ftrace_ops anyway, we can implement
> > the ftrace_ops and the regs passing together. The arch will need to
> > update both at the same time.
>
> Hmm, is that ftrace_ops for recursion check? :)
Nope, it's to pass data to the callbacks.
> > Nothing will be passed uninitialized. If an arch does not support
> > passing ftrace ops and regs, then it will be calling the
> > noregs_global_list_func() (or whatever I name it), which only expects
> > the ip and parent_ip as parameters. Then that will be calling the actual
> > loop function with NULLs in the parameters.
>
> Yeah, that's safe, but I think dyn_ftrace can't call handler
> directly from ftrace_call on such archs, can it?
> # It depends on performance degradation.
>
Actually, there's already a performance degradation on most archs. They
must also implement a fast "shut off function tracing", and if it
doesn't, it calls a helper function. I'll merge the helper function into
this call so we don't have two indirections.
> > When an arch supports passing of ftrace_ops, then it should also support
> > passing in the regs (as that should be the trivial part).
>
> Preparing pt_regs by software is hard on some archs, e.g. IA64.
> But yeah, that's an obsolete arch. We'd better focus on x86 and
> ARM variants.
It shouldn't be hard to pass a forth arg. Then if it's too hard to pass
regs, it can still pass NULL. We can just make all callbacks check for
NULL. I can add an config option that tests to make sure this is the
case. If the regs flag isn't set, I can call the call back with NULL in
the regs, and make it crash. Obviously this config will be a a debug
config and not something normal users should set. :-)
>
> > Note, all funcs will get regs, but it may not get the full regs. That
> > requires the ftrace_ops setting the special flag. The regs are saved for
> > the mcount already. But only a partial set. Those will be sent to all
> > function callbacks. If the function call back requires a full set (like
> > kprobes does), then it must set the flag before registering.
>
> Just out of curiously, would you mean that you will allocate full
> pt_regs frame on stack always?
Yes. The allocation is done, but the actual storage is not. This could
cause cache issues, but nothing too bad. If you are worried about stack
overflow, then the code itself is using too much stack and should be
reported. Of course, that's what the stack tracer is for ;-)
>
> >
> > Hows this sound?
>
> Sounds better to me, at far as there are non-initialized parameters
> passed to user handler. :)
>
> BTW, would you like to update ftrace part? I'd like to fix to remove
> notrace from my previous patchset and resend tomorrow.
I'll work today on getting out a new git tree that has my latest
updates.
Thanks!
-- Steve
next prev parent reply other threads:[~2012-06-04 15:11 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-29 12:48 [RFC PATCH -tip 0/9]ftrace, kprobes: Ftrace-based kprobe optimization Masami Hiramatsu
2012-05-29 12:48 ` [RFC PATCH -tip 1/9] ftrace: Add pt_regs acceptable trace callback Masami Hiramatsu
2012-06-02 2:07 ` Steven Rostedt
2012-06-04 13:58 ` Masami Hiramatsu
2012-06-04 14:25 ` Steven Rostedt
2012-06-04 14:57 ` Masami Hiramatsu
2012-06-04 15:11 ` Steven Rostedt [this message]
2012-05-29 12:49 ` [RFC PATCH -tip 2/9] ftrace/x86-64: support SAVE_REGS feature on x86-64 Masami Hiramatsu
2012-05-29 23:05 ` Steven Rostedt
2012-05-30 6:39 ` Masami Hiramatsu
2012-05-30 11:34 ` Steven Rostedt
2012-05-29 12:49 ` [RFC PATCH -tip 3/9] ftrace/x86: Support SAVE_REGS feature on i386 Masami Hiramatsu
2012-05-29 12:49 ` [RFC PATCH -tip 4/9] ftrace: add ftrace_set_filter_ip() for address based filter Masami Hiramatsu
2012-05-29 12:49 ` [RFC PATCH -tip 5/9] kprobes: Inverse taking of module_mutex with kprobe_mutex Masami Hiramatsu
2012-05-29 12:49 ` [RFC PATCH -tip 6/9] kprobes: cleanup to separate probe-able check Masami Hiramatsu
2012-05-29 12:49 ` [RFC PATCH -tip 7/9] kprobes: Move locks into appropriate functions Masami Hiramatsu
2012-05-29 12:49 ` [RFC PATCH -tip 8/9] kprobes: introduce ftrace based optiomization Masami Hiramatsu
2012-05-30 7:22 ` Ananth N Mavinakayanahalli
2012-05-30 7:56 ` Masami Hiramatsu
2012-05-29 12:49 ` [RFC PATCH -tip 9/9] kprobes/x86: ftrace based optiomization for x86 Masami Hiramatsu
2012-05-29 22:45 ` [RFC PATCH -tip 0/9]ftrace, kprobes: Ftrace-based kprobe optimization Steven Rostedt
2012-05-30 6:59 ` Masami Hiramatsu
2012-05-30 11:39 ` Steven Rostedt
2012-05-31 15:01 ` Masami Hiramatsu
2012-05-31 15:15 ` Steven Rostedt
2012-05-31 15:28 ` Masami Hiramatsu
2012-06-01 13:36 ` Masami Hiramatsu
2012-06-01 14:20 ` Steven Rostedt
2012-06-04 11:45 ` Masami Hiramatsu
2012-06-04 12:07 ` Steven Rostedt
2012-06-04 12:24 ` Masami Hiramatsu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1338822687.13348.516.camel@gandalf.stny.rr.com \
--to=rostedt@goodmis.org \
--cc=akpm@linux-foundation.org \
--cc=ananth@in.ibm.com \
--cc=fche@redhat.com \
--cc=fweisbec@gmail.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=masami.hiramatsu.pt@hitachi.com \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=yrl.pp-manager.tt@hitachi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®