From: Frederic Weisbecker <fweisbec@gmail.com>
To: Jiri Olsa <jolsa@redhat.com>
Cc: Steven Rostedt <rostedt@goodmis.org>,
mingo@redhat.com, paulus@samba.org, acme@ghostprotocols.net,
a.p.zijlstra@chello.nl, linux-kernel@vger.kernel.org,
aarapov@redhat.com
Subject: Re: [PATCH 2/7] ftrace: Add enable/disable ftrace_ops control interface
Date: Sat, 28 Jan 2012 17:39:17 +0100 [thread overview]
Message-ID: <20120128163913.GE3391@somewhere> (raw)
In-Reply-To: <20120127172012.GE10601@m.brq.redhat.com>
On Fri, Jan 27, 2012 at 06:20:12PM +0100, Jiri Olsa wrote:
> On Fri, Jan 27, 2012 at 06:02:04PM +0100, Frederic Weisbecker wrote:
> > On Fri, Jan 27, 2012 at 05:54:16PM +0100, Jiri Olsa wrote:
> > > On Fri, Jan 27, 2012 at 05:40:49PM +0100, Frederic Weisbecker wrote:
> > > > On Fri, Jan 27, 2012 at 11:37:14AM +0100, Jiri Olsa wrote:
> > > > > On Thu, Jan 26, 2012 at 03:37:29AM +0100, Frederic Weisbecker wrote:
> > > > > > On Wed, Jan 25, 2012 at 06:13:41PM -0500, Steven Rostedt wrote:
> > > > > > > On Fri, 2012-01-20 at 18:02 +0100, Frederic Weisbecker wrote:
> > > > > > > >
> > > > > > > > > +/**
> > > > > > > > > + * ftrace_function_enable - enable controlled ftrace_ops on given cpu
> > > > > > > > > + *
> > > > > > > > > + * This function enables tracing on given cpu by decreasing
> > > > > > > > > + * the per cpu control variable.
> > > > > > > > > + * It must be called with preemption disabled and only on
> > > > > > > > > + * ftrace_ops registered with FTRACE_OPS_FL_CONTROL.
> > > > > > > > > + */
> > > > > > > > > +static inline void ftrace_function_enable(struct ftrace_ops *ops, int cpu)
> > > > > > > > > +{
> > > > > > > > > + atomic_t *disabled;
> > > > > > > > > +
> > > > > > > > > + if (WARN_ON_ONCE(!(ops->flags & FTRACE_OPS_FL_CONTROL) ||
> > > > > > > > > + !preempt_count()))
> > > > > > > > > + return;
> > > > > > > > > +
> > > > > > > > > + disabled = per_cpu_ptr(ops->disabled, cpu);
> > > > > > > > > + atomic_dec(disabled);
> > > > > > > > > +}
> > > > > > > >
> > > > > > > > As you're using this for the local CPU exclusively, I suggest you rather
> > > > > > > > rename it to "ftrace_function_{dis,en}able_cpu(struct ftrace_ops *ops)"
> > > > > > >
> > > > > > > I wonder if "ftrace_function_local_{dis,en}able(ops)" would be better?
> > > > > > > That would match something like local_irq_disable/enable.
> > > > > >
> > > > > > Good idea.
> > > > > >
> > > > > > >
> > > > > > > > and use __get_cpu_var() that does the preempt check for you.
> > > > >
> > > > > I haven't found preempt check this_cpu_ptr path.. not sure I missed it..
> > > > > so I'm keeping the implicit preemt check.
> > > >
> > > > #ifdef CONFIG_DEBUG_PREEMPT
> > > > #define my_cpu_offset per_cpu_offset(smp_processor_id())
> > > > #else
> > > > #define my_cpu_offset __my_cpu_offset
> > > > #endif
> > > >
> > > > #ifdef CONFIG_DEBUG_PREEMPT
> > > > #define this_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, my_cpu_offset)
> > > > #else
> > > > #define this_cpu_ptr(ptr) __this_cpu_ptr(ptr)
> > > > #endif
> > > >
> > > > And smp_processor_id() has a preemption check.
> > >
> > > yay.. ok :) so this one is triggered only if there's CONFIG_DEBUG_PREEMPT
> > > option enabled.. seems to me it'd better to keep the implicit check anyway.
> > >
> > > jirka
> >
> >
> > This is a debugging option deemed to lower runtime debugging checks in
> > production.
> >
> > Is there a good reason to keep the check on every case?
>
> none I guess, apart from me feeling better.. ;)
> attached new version without the preemt_count check int the WARN_ON_ONCE
Looks good.
Thanks.
next prev parent reply other threads:[~2012-01-28 16:39 UTC|newest]
Thread overview: 185+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-27 18:04 [RFC] ftrace, perf: Adding support to use function trace Jiri Olsa
2011-11-27 18:04 ` [PATCH 1/9] trace: Fix uninitialized variable compiler warning Jiri Olsa
2011-11-28 16:19 ` Steven Rostedt
2011-11-28 16:25 ` Jiri Olsa
2011-11-28 19:34 ` Steven Rostedt
2011-11-27 18:04 ` [PATCH 2/9] ftrace: Fix possible NULL dereferencing in __ftrace_hash_rec_update Jiri Olsa
2011-11-28 16:24 ` Steven Rostedt
2011-11-27 18:04 ` [PATCH 3/9] ftrace: Fix shutdown to disable calls properly Jiri Olsa
2011-11-28 19:18 ` Steven Rostedt
2011-11-29 11:21 ` Jiri Olsa
2011-11-27 18:04 ` [PATCH 4/9] ftrace: Add enable/disable ftrace_ops control interface Jiri Olsa
2011-11-28 19:26 ` Steven Rostedt
2011-11-28 20:02 ` Peter Zijlstra
2011-11-28 20:05 ` Peter Zijlstra
2011-11-28 20:14 ` Steven Rostedt
2011-11-28 20:20 ` Peter Zijlstra
2011-11-28 20:12 ` Steven Rostedt
2011-11-28 20:15 ` Peter Zijlstra
2011-11-28 20:24 ` Steven Rostedt
2011-11-28 20:21 ` Steven Rostedt
2011-11-29 10:07 ` Jiri Olsa
2011-11-27 18:04 ` [PATCH 5/9] ftrace, perf: Add open/close tracepoint perf registration actions Jiri Olsa
2011-11-27 18:04 ` [PATCH 6/9] ftrace, perf: Add add/del " Jiri Olsa
2011-11-27 18:04 ` [PATCH 7/9] ftrace, perf: Add support to use function tracepoint in perf Jiri Olsa
2011-11-28 19:58 ` Steven Rostedt
2011-11-28 20:03 ` Peter Zijlstra
2011-11-28 20:13 ` Steven Rostedt
2011-11-29 10:10 ` Jiri Olsa
2011-11-28 20:08 ` Peter Zijlstra
2011-11-28 20:10 ` Peter Zijlstra
2011-11-28 20:16 ` Steven Rostedt
2011-11-28 20:18 ` Peter Zijlstra
2011-11-27 18:04 ` [PATCH 8/9] ftrace, perf: Add FILTER_TRACE_FN event field type Jiri Olsa
2011-11-28 20:01 ` Steven Rostedt
2011-11-29 10:14 ` Jiri Olsa
2011-11-29 11:22 ` Jiri Olsa
2011-11-29 11:51 ` Peter Zijlstra
2011-11-29 12:21 ` Jiri Olsa
2011-11-27 18:04 ` [PATCH 9/9] ftrace, perf: Add filter support for function trace event Jiri Olsa
2011-11-28 20:07 ` Steven Rostedt
2011-12-05 17:22 ` [RFCv2] ftrace, perf: Adding support to use function trace Jiri Olsa
2011-12-05 17:22 ` [PATCHv2 01/10] ftrace: Fix possible NULL dereferencing in __ftrace_hash_rec_update Jiri Olsa
2011-12-05 17:22 ` [PATCHv2 02/10] ftrace: Change mcount call replacement logic Jiri Olsa
2011-12-19 19:03 ` Steven Rostedt
2011-12-20 13:10 ` Jiri Olsa
2011-12-20 16:33 ` Steven Rostedt
2011-12-20 19:39 ` Steven Rostedt
2011-12-21 9:57 ` Jiri Olsa
2011-12-21 11:34 ` Steven Rostedt
2011-12-21 11:35 ` Steven Rostedt
2011-12-21 11:40 ` Jiri Olsa
2012-01-08 9:13 ` [tip:perf/core] ftrace: Fix unregister ftrace_ops accounting tip-bot for Jiri Olsa
2011-12-05 17:22 ` [PATCHv2 03/10] ftrace: Add enable/disable ftrace_ops control interface Jiri Olsa
2011-12-19 19:19 ` Steven Rostedt
2011-12-19 19:35 ` Steven Rostedt
2011-12-20 14:57 ` Jiri Olsa
2011-12-20 15:25 ` Steven Rostedt
2011-12-20 15:35 ` Jiri Olsa
2011-12-05 17:22 ` [PATCHv2 04/10] ftrace, perf: Add open/close tracepoint perf registration actions Jiri Olsa
2011-12-05 17:22 ` [PATCHv2 05/10] ftrace, perf: Add add/del " Jiri Olsa
2011-12-05 17:22 ` [PATCHv2 06/10] ftrace, perf: Add support to use function tracepoint in perf Jiri Olsa
2011-12-05 17:22 ` [PATCHv2 07/10] ftrace: Change filter/notrace set functions to return exit code Jiri Olsa
2011-12-19 19:22 ` Steven Rostedt
2011-12-05 17:22 ` [PATCHv2 08/10] ftrace, perf: Distinguish ftrace function event field type Jiri Olsa
2011-12-05 17:22 ` [PATCHv2 09/10] ftrace, perf: Add filter support for function trace event Jiri Olsa
2011-12-05 17:22 ` [PATCHv2 10/10] ftrace, graph: Add global_ops filter callback for graph tracing Jiri Olsa
2011-12-19 19:27 ` Steven Rostedt
2011-12-19 13:40 ` [RFCv2] ftrace, perf: Adding support to use function trace Jiri Olsa
2011-12-19 16:45 ` Steven Rostedt
2011-12-19 16:58 ` Frederic Weisbecker
2011-12-21 11:48 ` [PATCHv3 0/8] " Jiri Olsa
2011-12-21 11:48 ` [PATCH 1/8] ftrace: Change filter/notrace set functions to return exit code Jiri Olsa
2011-12-21 11:48 ` [PATCH 2/8] ftrace: Fix possible NULL dereferencing in __ftrace_hash_rec_update Jiri Olsa
2011-12-21 15:23 ` Steven Rostedt
2011-12-21 11:48 ` [PATCH 3/8] ftrace: Add enable/disable ftrace_ops control interface Jiri Olsa
2011-12-21 16:01 ` Steven Rostedt
2011-12-21 16:43 ` Jiri Olsa
2011-12-21 16:55 ` Steven Rostedt
2012-01-24 1:26 ` Frederic Weisbecker
2011-12-21 11:48 ` [PATCH 4/8] ftrace, perf: Add open/close tracepoint perf registration actions Jiri Olsa
2011-12-21 11:48 ` [PATCH 5/8] ftrace, perf: Add add/del " Jiri Olsa
2011-12-21 11:48 ` [PATCH 6/8] ftrace, perf: Add support to use function tracepoint in perf Jiri Olsa
2011-12-21 11:48 ` [PATCH 7/8] ftrace, perf: Distinguish ftrace function event field type Jiri Olsa
2011-12-21 11:48 ` [PATCH 8/8] ftrace, perf: Add filter support for function trace event Jiri Olsa
2011-12-21 18:56 ` [PATCHv4 0/8] ftrace, perf: Adding support to use function trace Jiri Olsa
2011-12-21 18:56 ` [PATCH 1/7] ftrace: Change filter/notrace set functions to return exit code Jiri Olsa
2011-12-22 0:12 ` Steven Rostedt
2011-12-22 8:01 ` [PATCHv5 " Jiri Olsa
2011-12-21 18:56 ` [PATCH 2/7] ftrace: Add enable/disable ftrace_ops control interface Jiri Olsa
2011-12-21 18:56 ` [PATCH 3/7] ftrace, perf: Add open/close tracepoint perf registration actions Jiri Olsa
2011-12-21 18:56 ` [PATCH 4/7] ftrace, perf: Add add/del " Jiri Olsa
2011-12-21 18:56 ` [PATCH 5/7] ftrace, perf: Add support to use function tracepoint in perf Jiri Olsa
2011-12-21 18:56 ` [PATCH 6/7] ftrace, perf: Distinguish ftrace function event field type Jiri Olsa
2011-12-21 18:56 ` [PATCH 7/7] ftrace, perf: Add filter support for function trace event Jiri Olsa
2011-12-21 22:07 ` Frederic Weisbecker
2011-12-22 12:55 ` Jiri Olsa
2011-12-22 15:26 ` [PATCHvFIXED " Jiri Olsa
2011-12-24 2:35 ` Frederic Weisbecker
2011-12-21 19:02 ` [PATCHv4 0/7] ftrace, perf: Adding support to use function trace Jiri Olsa
2012-01-02 9:04 ` [PATCHv5 " Jiri Olsa
2012-01-02 9:04 ` [PATCH 1/7] ftrace: Change filter/notrace set functions to return exit code Jiri Olsa
2012-02-17 13:46 ` [tip:perf/core] ftrace: Change filter/ notrace " tip-bot for Jiri Olsa
2012-01-02 9:04 ` [PATCH 2/7] ftrace: Add enable/disable ftrace_ops control interface Jiri Olsa
2012-01-17 1:42 ` Frederic Weisbecker
2012-01-17 2:07 ` Steven Rostedt
2012-01-17 2:29 ` Frederic Weisbecker
2012-01-18 13:59 ` Jiri Olsa
2012-01-02 9:04 ` [PATCH 3/7] ftrace, perf: Add open/close tracepoint perf registration actions Jiri Olsa
2012-01-02 9:04 ` [PATCH 4/7] ftrace, perf: Add add/del " Jiri Olsa
2012-01-02 9:04 ` [PATCH 5/7] ftrace, perf: Add support to use function tracepoint in perf Jiri Olsa
2012-01-02 9:04 ` [PATCH 6/7] ftrace, perf: Distinguish ftrace function event field type Jiri Olsa
2012-01-02 9:04 ` [PATCH 7/7] ftrace, perf: Add filter support for function trace event Jiri Olsa
2012-01-16 23:59 ` Steven Rostedt
2012-01-18 13:45 ` Jiri Olsa
2012-01-16 8:57 ` [PATCHv5 0/7] ftrace, perf: Adding support to use function trace Jiri Olsa
2012-01-16 16:17 ` Steven Rostedt
2012-01-18 18:44 ` [PATCHv6 " Jiri Olsa
2012-01-18 18:44 ` [PATCH 1/7] ftrace: Change filter/notrace set functions to return exit code Jiri Olsa
2012-01-19 16:31 ` Frederic Weisbecker
2012-01-18 18:44 ` [PATCH 2/7] ftrace: Add enable/disable ftrace_ops control interface Jiri Olsa
2012-01-20 17:02 ` Frederic Weisbecker
2012-01-25 23:13 ` Steven Rostedt
2012-01-26 2:37 ` Frederic Weisbecker
2012-01-27 10:37 ` Jiri Olsa
2012-01-27 10:38 ` Jiri Olsa
2012-01-27 16:40 ` Frederic Weisbecker
2012-01-27 16:54 ` Jiri Olsa
2012-01-27 17:02 ` Frederic Weisbecker
2012-01-27 17:20 ` Jiri Olsa
2012-01-28 16:39 ` Frederic Weisbecker [this message]
2012-01-27 17:21 ` Steven Rostedt
2012-01-18 18:44 ` [PATCH 3/7] ftrace, perf: Add open/close tracepoint perf registration actions Jiri Olsa
2012-01-18 18:44 ` [PATCH 4/7] ftrace, perf: Add add/del " Jiri Olsa
2012-01-18 18:44 ` [PATCH 5/7] ftrace, perf: Add support to use function tracepoint in perf Jiri Olsa
2012-01-18 18:44 ` [PATCH 6/7] ftrace, perf: Distinguish ftrace function event field type Jiri Olsa
2012-01-18 18:44 ` [PATCH 7/7] ftrace, perf: Add filter support for function trace event Jiri Olsa
2012-01-18 21:43 ` [PATCHv6 0/7] ftrace, perf: Adding support to use function trace Steven Rostedt
2012-01-28 18:43 ` [PATCHv7 " Jiri Olsa
2012-01-28 18:43 ` [PATCH 1/7] ftrace: Change filter/notrace set functions to return exit code Jiri Olsa
2012-01-30 5:42 ` Frederic Weisbecker
2012-01-28 18:43 ` [PATCH 2/7] ftrace: Add enable/disable ftrace_ops control interface Jiri Olsa
2012-01-30 5:59 ` Frederic Weisbecker
2012-01-30 9:18 ` Jiri Olsa
2012-02-03 13:42 ` Steven Rostedt
2012-02-03 13:50 ` Jiri Olsa
2012-02-03 14:08 ` Steven Rostedt
2012-02-03 14:22 ` [PATCHv8 0/2] first 2 patches passed review Jiri Olsa
2012-02-03 14:22 ` [PATCH 1/2] ftrace: Change filter/notrace set functions to return exit code Jiri Olsa
2012-02-03 14:22 ` [PATCH 2/2] ftrace: Add enable/disable ftrace_ops control interface Jiri Olsa
2012-02-04 13:24 ` [PATCHv8 0/2] first 2 patches passed review Frederic Weisbecker
2012-02-03 13:40 ` [PATCH 2/7] ftrace: Add enable/disable ftrace_ops control interface Steven Rostedt
2012-01-28 18:43 ` [PATCH 3/7] ftrace, perf: Add open/close tracepoint perf registration actions Jiri Olsa
2012-02-02 17:35 ` Frederic Weisbecker
2012-02-03 10:23 ` Jiri Olsa
2012-01-28 18:43 ` [PATCH 4/7] ftrace, perf: Add add/del " Jiri Olsa
2012-02-02 17:42 ` Frederic Weisbecker
2012-01-28 18:43 ` [PATCH 5/7] ftrace, perf: Add support to use function tracepoint in perf Jiri Olsa
2012-02-02 18:14 ` Frederic Weisbecker
2012-02-03 12:54 ` Jiri Olsa
2012-02-03 13:00 ` Jiri Olsa
2012-02-03 14:07 ` Steven Rostedt
2012-02-04 13:21 ` Frederic Weisbecker
2012-02-06 19:35 ` Steven Rostedt
2012-02-03 13:53 ` Steven Rostedt
2012-01-28 18:43 ` [PATCH 6/7] ftrace, perf: Distinguish ftrace function event field type Jiri Olsa
2012-02-03 14:16 ` Steven Rostedt
2012-01-28 18:43 ` [PATCH 7/7] ftrace, perf: Add filter support for function trace event Jiri Olsa
2012-02-07 0:20 ` Jiri Olsa
2012-02-07 19:44 ` [PATCHv8 0/8] ftrace, perf: Adding support to use function trace Jiri Olsa
2012-02-07 19:44 ` [PATCH 1/8] ftrace: Change filter/notrace set functions to return exit code Jiri Olsa
2012-02-07 19:44 ` [PATCH 2/8] ftrace: Add enable/disable ftrace_ops control interface Jiri Olsa
2012-02-07 19:44 ` [PATCH 3/8] ftrace, perf: Add open/close tracepoint perf registration actions Jiri Olsa
2012-02-07 19:44 ` [PATCH 4/8] ftrace, perf: Add add/del " Jiri Olsa
2012-02-07 19:44 ` [PATCH 5/8] ftrace: Add FTRACE_ENTRY_REG macro to allow event registration Jiri Olsa
2012-02-07 19:44 ` [PATCH 6/8] ftrace, perf: Add support to use function tracepoint in perf Jiri Olsa
2012-02-07 19:44 ` [PATCH 7/8] ftrace: Allow to specify filter field type for ftrace events Jiri Olsa
2012-02-07 19:44 ` [PATCH 8/8] ftrace, perf: Add filter support for function trace event Jiri Olsa
2012-02-10 13:27 ` [PATCHv8 0/8] ftrace, perf: Adding support to use function trace Steven Rostedt
2012-02-10 14:45 ` Steven Rostedt
2012-02-10 16:07 ` Jiri Olsa
2012-02-10 16:48 ` Frederic Weisbecker
2012-02-10 18:00 ` Steven Rostedt
2012-02-10 18:05 ` Frederic Weisbecker
2012-02-10 18:23 ` David Ahern
2012-02-13 18:02 ` Steven Rostedt
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=20120128163913.GE3391@somewhere \
--to=fweisbec@gmail.com \
--cc=a.p.zijlstra@chello.nl \
--cc=aarapov@redhat.com \
--cc=acme@ghostprotocols.net \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=paulus@samba.org \
--cc=rostedt@goodmis.org \
/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.