Re: [PATCH 4/4] perf tools: Add perf trace

From: Ingo Molnar
Date: Mon Aug 17 2009 - 10:41:27 EST



* Frederic Weisbecker <fweisbec@xxxxxxxxx> wrote:

> This adds perf trace into the set of perf tools. It is written to
> fetch the tracepoints samples from perf events and display them,
> according to the events informations given by the debugfs files
> through the util/trace* tools.
>
> It is a rough first shot and doesn't yet handle the cpu,
> timestamps fields and some other things.
>
> Example:
>
> perf record -f -e workqueue:workqueue_execution:record -F 1 -a
> perf trace
>
> kblockd/0-236 [000] 0.000000: workqueue_execution: thread=:236 func=cfq_kick_queue+0x0
> kondemand/0-360 [000] 0.000000: workqueue_execution: thread=:360 func=do_dbs_timer+0x0
> kondemand/0-360 [000] 0.000000: workqueue_execution: thread=:360 func=do_dbs_timer+0x0
> kondemand/1-361 [000] 0.000000: workqueue_execution: thread=:361 func=do_dbs_timer+0x0
> kondemand/1-361 [000] 0.000000: workqueue_execution: thread=:361 func=do_dbs_timer+0x0
> kondemand/1-361 [000] 0.000000: workqueue_execution: thread=:361 func=do_dbs_timer+0x0
> kondemand/1-361 [000] 0.000000: workqueue_execution: thread=:361 func=do_dbs_timer+0x0
> kondemand/1-361 [000] 0.000000: workqueue_execution: thread=:361 func=do_dbs_timer+0x0
> kondemand/1-361 [000] 0.000000: workqueue_execution: thread=:361 func=do_dbs_timer+0x0
> kondemand/1-361 [000] 0.000000: workqueue_execution: thread=:361 func=do_dbs_timer+0x0
> kondemand/1-361 [000] 0.000000: workqueue_execution: thread=:361 func=do_dbs_timer+0x0
> kondemand/1-361 [000] 0.000000: workqueue_execution: thread=:361 func=do_dbs_timer+0x0
> kondemand/1-361 [000] 0.000000: workqueue_execution: thread=:361 func=do_dbs_timer+0x0
> kondemand/1-361 [000] 0.000000: workqueue_execution: thread=:361 func=do_dbs_timer+0x0
> kondemand/1-361 [000] 0.000000: workqueue_execution: thread=:361 func=do_dbs_timer+0x0
> kondemand/1-361 [000] 0.000000: workqueue_execution: thread=:361 func=do_dbs_timer+0x0

Nice!

> Todo:
>
> - A lot of things!

heh :-)

To help this move forward i've put the patches into
tip:perfcounters/tracing. We might still rebase that branch, should
it become necessary, before merging it into perfcounters/core - but
it should give a first glimpse to people who want to try this.

A first bugreport:

took me some time to figure out that i need to pass in -R to create
a trace.info. I think we want to share the namespace anyway -
there's no real difference between perf.data and trace.info - both
contain trace records.

once i added -R i ran into this problem:

# perf record -R -f -e workqueue:workqueue_execution:record -F 1 -a
^C
[ perf record: Captured and wrote 0.250 MB perf.data (~10928 samples) ]

aldebaran:/home/mingo/linux/linux/tools/perf> perf trace
Fatal: bad op token )
version = 0.5

Some missing patch?

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/