All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>,
	Tom Zanussi <tzanussi@gmail.com>, Ingo Molnar <mingo@elte.hu>,
	linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] tracing/filters: allow event filters to be set only when not tracing
Date: Mon, 6 Apr 2009 16:58:50 -0700	[thread overview]
Message-ID: <20090406235850.GA20273@linux.vnet.ibm.com> (raw)
In-Reply-To: <20090406201524.GF6988@linux.vnet.ibm.com>

On Mon, Apr 06, 2009 at 01:15:24PM -0700, Paul E. McKenney wrote:
> On Mon, Apr 06, 2009 at 03:52:55PM -0400, Steven Rostedt wrote:
> > 
> > On Mon, 6 Apr 2009, Frederic Weisbecker wrote:
> > > > > 
> > > > > > > > So assuming we can't use rcu for this, it would be nice to have a way to
> > > > > > > > 'pause' tracing so the current filter can be removed i.e. some version
> > > > > > > > of stop_trace()/start_trace() that make sure nothing is still executing
> > > > > > > > or can enter filter_match_preds() while the current call->preds is being
> > > > > > > > destroyed.  Seems like it would be straightforward to implement for the
> > > > > > > > event tracer, since each event maps to a tracepoint that could be
> > > > > > > > temporarily unregistered/reregistered, but maybe not so easy for the
> > > > > > > > ftrace tracers...
> > > > > > > 
> > > > > > > In principle, it would be possible to rework RCU so that instead of the
> > > > > > > whole idle loop being a quiescent state, there is a single quiescent state
> > > > > > > at one point in each idle loop.  The reason that I have been avoiding this
> > > > > > > is that there are a lot of idle loops out there, and it would be a bit
> > > > > > > annoying to (1) find them all and update them and (2) keep track of all of
> > > > > > > them to ensure that new ones cannot slip in without the quiescent state.
> > > > > > > 
> > > > > > > But it could be done if the need is there.  Simple enough change.
> > > > > > > The following patch shows the general approach, assuming that CPUs
> > > > > > > are never put to sleep without entering nohz mode.
> > > > > > > 
> > > > > > > Thoughts?
> > > > > > 
> > > > > > I think using synchronize_sched() should be good enough for what we need.
> > > > > 
> > > > > Again, as long as either (1) you are OK with synchronize_sched()
> > > > > ignoring preempt-disable sequences in the idle loop or (2) we rework RCU
> > > > > to add something like an rcu_idle() call in each idle loop.
> > > > 
> > > > 3) add "notrace" to the idle functions ;-)
> > > > 
> > > > But perhaps the rcu_idle might be the best idea.
> > > 
> > > 
> > > And tracing the idle time is also sometimes very useful :-)
> > 
> > Agreed. I guess choice 2 is the best answer.
> 
> Fair enough!
> 
> Would one of you please check the placement of the rcu_idle() in the
> patch?  Patch reproduced below for convenience.

Hmmm...  Do the start_critical_timings() and stop_critical_timings()
functions have anything to do with ftrace()?

It does not look like I can just bury RCU-idle controls in these
functions, given that they are also invoked around call_console_drivers(),
but if all the idle loops are surrounded by stop_critical_timings() and
start_critical_timings(), that would ease location of all the idle
loops.  ;-)

							Thanx, Paul

  reply	other threads:[~2009-04-06 23:59 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-30  5:22 [PATCH] tracing/filters: allow event filters to be set only when not tracing Tom Zanussi
2009-04-01 12:24 ` Ingo Molnar
2009-04-02  6:22   ` Tom Zanussi
2009-04-03 13:59     ` Ingo Molnar
2009-04-03 14:12       ` Steven Rostedt
2009-04-04  7:32         ` Tom Zanussi
2009-04-04 15:49           ` Steven Rostedt
2009-04-04 17:02             ` Paul E. McKenney
2009-04-05  7:34             ` Tom Zanussi
2009-04-05 17:11               ` Paul E. McKenney
2009-04-06 15:59                 ` Steven Rostedt
2009-04-06 16:15                   ` Paul E. McKenney
2009-04-06 19:30                     ` Steven Rostedt
2009-04-06 19:44                       ` Frederic Weisbecker
2009-04-06 19:52                         ` Steven Rostedt
2009-04-06 20:15                           ` Paul E. McKenney
2009-04-06 23:58                             ` Paul E. McKenney [this message]
2009-04-07  0:34                               ` Steven Rostedt
2009-04-07  1:27                                 ` Paul E. McKenney
2009-04-03 16:26       ` Paul E. McKenney
2009-04-03 16:37         ` Ingo Molnar
2009-04-03 16:43           ` Steven Rostedt
2009-04-03 18:05             ` Paul E. McKenney

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=20090406235850.GA20273@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=rostedt@goodmis.org \
    --cc=tzanussi@gmail.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.