From: Frederic Weisbecker <fweisbec@gmail.com>
To: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>, Li Zefan <lizf@cn.fujitsu.com>,
LKML <linux-kernel@vger.kernel.org>,
Steven Rostedt <rostedt@goodmis.org>
Subject: Re: [PATCH] rcu: convert rcupreempt trace to seq file
Date: Sun, 11 Jan 2009 06:01:31 +0100 [thread overview]
Message-ID: <20090111050129.GA6131@nowhere> (raw)
In-Reply-To: <20090111013940.GL12885@elte.hu>
On Sun, Jan 11, 2009 at 02:39:40AM +0100, Ingo Molnar wrote:
>
> * Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
>
> > On Sat, Jan 10, 2009 at 03:48:46PM +0800, Li Zefan wrote:
> > > Impact: also fix a bug in show_rcustats()
> > >
> > > Use seq file for simplification, and the global buffer and mutex can be
> > > removed.
> >
> > Looks very good, and passes my tests.
> >
> > > While doing this, I found rcustats will never show 'ggp' and 'rcc' fields
> > > due to a bug in show_rcustats().
> >
> > Good eyes!
> >
> > The only change I ask is that you pull the contents of
> > rcupreempt_debugfs_init() into the now-one-line rcupreempt_trace_init().
> >
> > With that change:
> >
> > Tested-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> > Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> >
> > > ---
> > > kernel/rcupreempt_trace.c | 155 ++++++++++++++++++++-------------------------
>
> i think the whole kernel/rcupreempt_trace.c file might be a good candidate
> for the 'statistical tracing' extensions to ftrace that Frederice is
> working on.
>
> That way there would just be a few tracepoints, and the rest would be done
> in kernel/tracing/trace_rcupreempt.c, or so.
> Ingo
Indeed!
The debugfs and seqfile handling and handled in the statistical
tracing engine.
You just have to provide an iterator for your stat entries through two callbacks:
_ stat_start() -> gives the first entry
_ stat_next() -> iterates over the next entry
And an output callback
_ stat_show() -> print one entry from your stat list
And two optional things:
_ stat_cmp() -> compare two entries, useful if you want your stats to be sorted
_ stat_headers() -> provide the first line in your stat file, typically to describe your columns
The last thing you need is to give a name to your trace file.
You will retrieve it into /debugfs/tracing/trace_stat/your_file_name as a current snapshot
of your stats.
It is currently used by the branch tracer, and by a pending patch for a new workqueue
tracer which will provide you a simple example.
If you have any question about how to use it, don't hesitate to ask.
Frederic.
next prev parent reply other threads:[~2009-01-11 5:01 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-10 7:48 [PATCH] rcu: convert rcupreempt trace to seq file Li Zefan
2009-01-10 22:31 ` Paul E. McKenney
2009-01-11 1:39 ` Ingo Molnar
2009-01-11 5:01 ` Frederic Weisbecker [this message]
2009-01-11 5:16 ` Paul E. McKenney
2009-01-12 1:09 ` Li Zefan
2009-01-12 1:59 ` Paul E. McKenney
2009-01-13 3:19 ` Li Zefan
2009-01-13 8:49 ` Frederic Weisbecker
2009-01-13 9:03 ` Li Zefan
2009-01-13 9:17 ` Frederic Weisbecker
2009-01-13 13:08 ` 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=20090111050129.GA6131@nowhere \
--to=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lizf@cn.fujitsu.com \
--cc=mingo@elte.hu \
--cc=paulmck@linux.vnet.ibm.com \
--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.