summaryrefslogtreecommitdiff
path: root/tools/perf/perf.c
diff options
context:
space:
mode:
authorTom Zanussi <tzanussi@gmail.com>2010-05-01 01:41:20 -0500
committerArnaldo Carvalho de Melo <acme@redhat.com>2010-05-02 13:36:56 -0300
commit454c407ec17a0c63e4023ac0877d687945a7df4a (patch)
tree1271299a59a89419c0dd4dcbf29b4492b63555ca /tools/perf/perf.c
parent789688faef5b3ba78065beaf2f3d6f1c839f74a3 (diff)
downloadlinux-3.10-454c407ec17a0c63e4023ac0877d687945a7df4a.tar.gz
linux-3.10-454c407ec17a0c63e4023ac0877d687945a7df4a.tar.bz2
linux-3.10-454c407ec17a0c63e4023ac0877d687945a7df4a.zip
perf: add perf-inject builtin
Currently, perf 'live mode' writes build-ids at the end of the session, which isn't actually useful for processing live mode events. What would be better would be to have the build-ids sent before any of the samples that reference them, which can be done by processing the event stream and retrieving the build-ids on the first hit. Doing that in perf-record itself, however, is off-limits. This patch introduces perf-inject, which does the same job while leaving perf-record untouched. Normal mode perf still records the build-ids at the end of the session as it should, but for live mode, perf-inject can be injected in between the record and report steps e.g.: perf record -o - ./hackbench 10 | perf inject -v -b | perf report -v -i - perf-inject reads a perf-record event stream and repipes it to stdout. At any point the processing code can inject other events into the event stream - in this case build-ids (-b option) are read and injected as needed into the event stream. Build-ids are just the first user of perf-inject - potentially anything that needs userspace processing to augment the trace stream with additional information could make use of this facility. Cc: Ingo Molnar <mingo@elte.hu> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Frédéric Weisbecker <fweisbec@gmail.com> LKML-Reference: <1272696080-16435-3-git-send-email-tzanussi@gmail.com> Signed-off-by: Tom Zanussi <tzanussi@gmail.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/perf.c')
-rw-r--r--tools/perf/perf.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/perf/perf.c b/tools/perf/perf.c
index 5ff9b5b4697..08e0e5d2b50 100644
--- a/tools/perf/perf.c
+++ b/tools/perf/perf.c
@@ -309,6 +309,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "lock", cmd_lock, 0 },
{ "kvm", cmd_kvm, 0 },
{ "test", cmd_test, 0 },
+ { "inject", cmd_inject, 0 },
};
unsigned int i;
static const char ext[] = STRIP_EXTENSION;