Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 10274989 authored by Arjan van de Ven's avatar Arjan van de Ven Committed by Ingo Molnar
Browse files

perf: Add the timechart tool



timechart is a tool to visualize what is going on in the system.

The user makes a trace of what is going on with

 > perf record --timechart /usr/bin/some_command

and then can turn the output of this into an svg file

 > perf timechart

which then can be viewed with any SVG view; inkscape works well
enough for me.

The idea behind timechart is to create a "infinitely zoomable"
picture; something that has high level information on a 1:1 zoom
level, but which exposes more details every time you zoom into a
specific area.

Signed-off-by: default avatarArjan van de Ven <arjan@linux.intel.com>
Acked-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <20090912130713.6a77bbc0@infradead.org>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent f48d55ce
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -382,6 +382,7 @@ BUILTIN_OBJS += builtin-list.o
BUILTIN_OBJS += builtin-record.o
BUILTIN_OBJS += builtin-report.o
BUILTIN_OBJS += builtin-stat.o
BUILTIN_OBJS += builtin-timechart.o
BUILTIN_OBJS += builtin-top.o
BUILTIN_OBJS += builtin-trace.o

@@ -712,6 +713,12 @@ builtin-help.o: builtin-help.c common-cmds.h PERF-CFLAGS
		'-DPERF_MAN_PATH="$(mandir_SQ)"' \
		'-DPERF_INFO_PATH="$(infodir_SQ)"' $<

builtin-timechart.o: builtin-timechart.c common-cmds.h PERF-CFLAGS
	$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) \
		'-DPERF_HTML_PATH="$(htmldir_SQ)"' \
		'-DPERF_MAN_PATH="$(mandir_SQ)"' \
		'-DPERF_INFO_PATH="$(infodir_SQ)"' $<

$(BUILT_INS): perf$X
	$(QUIET_BUILT_IN)$(RM) $@ && \
	ln perf$X $@ 2>/dev/null || \
+1120 −0

File added.

Preview size limit exceeded, changes collapsed.

+1 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ extern int cmd_list(int argc, const char **argv, const char *prefix);
extern int cmd_record(int argc, const char **argv, const char *prefix);
extern int cmd_report(int argc, const char **argv, const char *prefix);
extern int cmd_stat(int argc, const char **argv, const char *prefix);
extern int cmd_timechart(int argc, const char **argv, const char *prefix);
extern int cmd_top(int argc, const char **argv, const char *prefix);
extern int cmd_trace(int argc, const char **argv, const char *prefix);
extern int cmd_version(int argc, const char **argv, const char *prefix);
+1 −0
Original line number Diff line number Diff line
@@ -289,6 +289,7 @@ static void handle_internal_command(int argc, const char **argv)
		{ "record", cmd_record, 0 },
		{ "report", cmd_report, 0 },
		{ "stat", cmd_stat, 0 },
		{ "timechart", cmd_timechart, 0 },
		{ "top", cmd_top, 0 },
		{ "annotate", cmd_annotate, 0 },
		{ "version", cmd_version, 0 },