All of lore.kernel.org
 help / color / mirror / Atom feed
From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>,
	Ingo Molnar <mingo@elte.hu>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	linux-kernel@vger.kernel.org, yrl.pp-manager.tt@hitachi.com,
	Ingo Molnar <mingo@redhat.com>
Subject: Re: [PATCH -tip 02/13] [CLEANUP]tracing/kprobes: merge trace probe enable/disable functions
Date: Sat, 09 Jul 2011 13:41:14 +0900	[thread overview]
Message-ID: <4E17DBEA.200@hitachi.com> (raw)
In-Reply-To: <1310143024.26417.236.camel@gandalf.stny.rr.com>

(2011/07/09 1:37), Steven Rostedt wrote:
> On Mon, 2011-06-27 at 16:26 +0900, Masami Hiramatsu wrote:
>> Merge redundant enable/disable functions into enable_trace_probe()
>> and disable_trace_probe().
>>
>> Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
>> Cc: Steven Rostedt <rostedt@goodmis.org>
>> Cc: Frederic Weisbecker <fweisbec@gmail.com>
>> Cc: Ingo Molnar <mingo@redhat.com>
>> ---
>>
>>  kernel/trace/trace_kprobe.c |   88 +++++++++++++++++--------------------------
>>  1 files changed, 34 insertions(+), 54 deletions(-)
>>
>> diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c
>> index bad87e9..ce5e6aa 100644
>> --- a/kernel/trace/trace_kprobe.c
>> +++ b/kernel/trace/trace_kprobe.c
>> @@ -683,6 +683,34 @@ static struct trace_probe *find_trace_probe(const char
*event,
>>  	return NULL;
>>  }
>>
>> +/* Enable trace_probe - @flag must be TP_FLAG_TRACE or TP_FLAG_PROFILE */
>> +static int enable_trace_probe(struct trace_probe *tp, int flag)
>> +{
>> +	int ret = 0;
>> +
>> +	tp->flags |= flag;
>> +	if (tp->flags & (TP_FLAG_TRACE | TP_FLAG_PROFILE)) {
>> +		if (trace_probe_is_return(tp))
>> +			ret = enable_kretprobe(&tp->rp);
>> +		else
>> +			ret = enable_kprobe(&tp->rp.kp);
>> +	}
>
> Hmm, this seems weird. Should we have any protection here? I mean, is it
> ok to call the enable_kprobe() twice? Or should we have something like:
>
> {
> 	int old_flags = tp->flags;
> 	int ret = 0;
>
> 	tp->flags |= flag;
>
> 	if (!(old_flags & (TP_FLAG_TRACE | TP_FLAG_PROFILE)) &&
> 	    flag & (TP_FLAG_TRACE | TP_FLAG_PROFILE)) {
> 		[...]
> 	}
>
> 	return ret;
> }


Ah, no problem, enable_kprobe() enables given kprobe only if it is
disabled.

>
>
>> +
>> +	return ret;
>> +}
>> +
>> +/* Disable trace_probe - @flag must be TP_FLAG_TRACE or TP_FLAG_PROFILE */
>> +static void disable_trace_probe(struct trace_probe *tp, int flag)
>> +{
>> +	tp->flags &= ~flag;
>> +	if (!(tp->flags & (TP_FLAG_TRACE | TP_FLAG_PROFILE))) {
>> +		if (trace_probe_is_return(tp))
>> +			disable_kretprobe(&tp->rp);
>> +		else
>> +			disable_kprobe(&tp->rp.kp);
>> +	}
>> +}
>
> Same here.

Same as above.

>
> Or do we want to reenable or re disable the probe?

Yeah, we do it for enabling/disabling each event.

Thank you,


>
> -- Steve

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

  reply	other threads:[~2011-07-09  4:41 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-27  7:26 [PATCH -tip 00/13]tracing/kprobes: Dynamic events on module support Masami Hiramatsu
2011-06-27  7:26 ` [PATCH -tip 01/13] [CLEANUP]tracing/kprobes: Rename probe_* to trace_probe_* Masami Hiramatsu
2011-07-21 10:01   ` [tip:perf/core] tracing/kprobes: " tip-bot for Masami Hiramatsu
2011-06-27  7:26 ` [PATCH -tip 02/13] [CLEANUP]tracing/kprobes: merge trace probe enable/disable functions Masami Hiramatsu
2011-07-08 16:37   ` Steven Rostedt
2011-07-09  4:41     ` Masami Hiramatsu [this message]
2011-07-15 17:27   ` Steven Rostedt
2011-07-16 10:30     ` Masami Hiramatsu
2011-07-16 10:33     ` [PATCH -tip v2] " Masami Hiramatsu
2011-07-16 11:11       ` Steven Rostedt
2011-07-21 10:01   ` [tip:perf/core] tracing/kprobes: Merge " tip-bot for Masami Hiramatsu
2011-06-27  7:26 ` [PATCH -tip 03/13] kprobes: Return -ENOENT if probe point doesn't exist Masami Hiramatsu
2011-06-28 13:03   ` Ananth N Mavinakayanahalli
2011-07-21 10:02   ` [tip:perf/core] " tip-bot for Masami Hiramatsu
2011-06-27  7:26 ` [PATCH -tip 04/13] tracing/kprobes: Support module init function probing Masami Hiramatsu
2011-07-21 10:02   ` [tip:perf/core] " tip-bot for Masami Hiramatsu
2011-06-27  7:27 ` [PATCH -tip 05/13] tracing/kprobe: Update symbol reference when loading module Masami Hiramatsu
2011-07-21 10:02   ` [tip:perf/core] " tip-bot for Masami Hiramatsu
2011-06-27  7:27 ` [PATCH -tip 06/13] [RESEND][CLEANUP]perf probe: Rename DIE_FIND_CB_FOUND to DIE_FIND_CB_END Masami Hiramatsu
2011-07-21 10:03   ` [tip:perf/core] perf " tip-bot for Masami Hiramatsu
2011-06-27  7:27 ` [PATCH -tip 07/13] [RESEND][CLEANUP]perf probe: Move strtailcmp to string.c Masami Hiramatsu
2011-07-21 10:03   ` [tip:perf/core] perf " tip-bot for Masami Hiramatsu
2011-06-27  7:27 ` [PATCH -tip 08/13] [RESEND][CLEANUP]perf probe: Remove redundant dwarf functions Masami Hiramatsu
2011-07-21 10:04   ` [tip:perf/core] perf " tip-bot for Masami Hiramatsu
2011-06-27  7:27 ` [PATCH -tip 09/13] [RESEND][CLEANUP]perf-probe: Move dwarf library routines to dwarf-aux.{c, h} Masami Hiramatsu
2011-07-21 10:04   ` [tip:perf/core] perf-probe: " tip-bot for Masami Hiramatsu
2011-06-27  7:27 ` [PATCH -tip 10/13] [RESEND]perf probe: Warn when more than two lines are given Masami Hiramatsu
2011-06-28 14:15   ` David Ahern
2011-06-29  5:14     ` Masami Hiramatsu
2011-06-27  7:27 ` [PATCH -tip 11/13] [RESEND]perf probe: Introduce debuginfo to encapsulate dwarf information Masami Hiramatsu
2011-07-21 10:05   ` [tip:perf/core] perf " tip-bot for Masami Hiramatsu
2011-06-27  7:27 ` [PATCH -tip 12/13] perf probe: Add probed module in front of function Masami Hiramatsu
2011-07-21 10:05   ` [tip:perf/core] " tip-bot for Masami Hiramatsu
2011-06-27  7:27 ` [PATCH -tip 13/13] perf probe: Support adding probes on offline kernel modules Masami Hiramatsu
2011-07-21 10:06   ` [tip:perf/core] " tip-bot for Masami Hiramatsu
2011-06-28 13:18 ` [PATCH -tip 00/13]tracing/kprobes: Dynamic events on module support Steven Rostedt
2011-07-15 11:28 ` Steven Rostedt
2011-07-15 12:26   ` 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=4E17DBEA.200@hitachi.com \
    --to=masami.hiramatsu.pt@hitachi.com \
    --cc=acme@redhat.com \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.