[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20100814200415.GA24704@infradead.org>
Date:	Sat, 14 Aug 2010 16:04:15 -0400
From:	Christoph Hellwig <hch@...radead.org>
To:	Frederic Weisbecker <fweisbec@...il.com>
Cc:	linux-kernel@...r.kernel.org
Subject: perf scripting
On Fri, Jul 30, 2010 at 04:04:42PM +0200, Frederic Weisbecker wrote:
> I have the feeling you've made an ad-hoc post processing script that seems
> to rewrite all the format parsing, debugfs, stream handling, etc... we
> have that in perf tools already.
> 
> May be you weren't aware of what we have in perf in terms of scripting support.
Frederic, any chance you could help me getting a bit more familar with
the perf perl scripting.  I currently have a hacky little sequence that
I use to profile what callers generate XFS log traffic, and it like to
turn it into a script so that I can do a direct perf call to use it
to profile things without manual work, and generate nicer output.
Currently it looks like this:
perf probe --add xlog_sync
perf record -g -e probe:xlog_sync -a -- <insert actualy workload here>
then do
perf report -n -g flat
to get me the callchain in a readable format.
Now what I'd really like is a perl script that can read a file like
latencytop.trans (or just has the information embedded) which contains
functions in the backtrace that we're interested in.
E.g. one simple from the report command above may look like:
                xlog_sync
		xlog_write
		xlog_cil_push
		_xfs_log_force
		xfs_log_force
		xfs_sync_data
		xfs_quiesce_data
		xfs_fs_sync_fs
In which case I'm interested in xfs_log_force and xfs_fs_sync_fs.  So
the output of the perl script should looks something like:
  Samples	Caller
	2	xfs_fs_sync_fs
	1	xfs_file_fsync
	1	xfs_commit_dummy_trans
Or if I have a way to parse the argument of the probe (in the worst case
I can replace it with a trace event if that makes it easier):
  Samples	Flags		Callers
	1	sync		xfs_fs_sync_fs
	1			xfs_fs_sync_fs
	1	sync		xfs_file_fsync
	1	sync		xfs_commit_dummy_trans
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
Powered by blists - more mailing lists
 
