Skip to content

Commit 830f185

Browse files
captain5050namhyung
authored andcommitted
perf timechart: Add record support for output perf.data path
The '-o' option exists for the SVG creation but not for `perf timechart record`. Add to better allow testing. Signed-off-by: Ian Rogers <irogers@google.com> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
1 parent 27e7112 commit 830f185

2 files changed

Lines changed: 12 additions & 6 deletions

File tree

tools/perf/Documentation/perf-timechart.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ RECORD OPTIONS
9494
-g::
9595
--callchain::
9696
Do call-graph (stack chain/backtrace) recording
97+
-o::
98+
--output=::
99+
Select the output file (default: perf.data)
97100

98101
EXAMPLES
99102
--------

tools/perf/builtin-timechart.c

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1651,15 +1651,15 @@ static int __cmd_timechart(struct timechart *tchart, const char *output_name)
16511651
return ret;
16521652
}
16531653

1654-
static int timechart__io_record(int argc, const char **argv)
1654+
static int timechart__io_record(int argc, const char **argv, const char *output_data)
16551655
{
16561656
unsigned int rec_argc, i;
16571657
const char **rec_argv;
16581658
const char **p;
16591659
char *filter = NULL;
16601660

16611661
const char * const common_args[] = {
1662-
"record", "-a", "-R", "-c", "1",
1662+
"record", "-a", "-R", "-c", "1", "-o", output_data,
16631663
};
16641664
unsigned int common_args_nr = ARRAY_SIZE(common_args);
16651665

@@ -1786,15 +1786,16 @@ static int timechart__io_record(int argc, const char **argv)
17861786
}
17871787

17881788

1789-
static int timechart__record(struct timechart *tchart, int argc, const char **argv)
1789+
static int timechart__record(struct timechart *tchart, int argc, const char **argv,
1790+
const char *output_data)
17901791
{
17911792
unsigned int rec_argc, i, j;
17921793
const char **rec_argv;
17931794
const char **p;
17941795
unsigned int record_elems;
17951796

17961797
const char * const common_args[] = {
1797-
"record", "-a", "-R", "-c", "1",
1798+
"record", "-a", "-R", "-c", "1", "-o", output_data,
17981799
};
17991800
unsigned int common_args_nr = ARRAY_SIZE(common_args);
18001801

@@ -1934,6 +1935,7 @@ int cmd_timechart(int argc, const char **argv)
19341935
.merge_dist = 1000,
19351936
};
19361937
const char *output_name = "output.svg";
1938+
const char *output_record_data = "perf.data";
19371939
const struct option timechart_common_options[] = {
19381940
OPT_BOOLEAN('P', "power-only", &tchart.power_only, "output power data only"),
19391941
OPT_BOOLEAN('T', "tasks-only", &tchart.tasks_only, "output processes data only"),
@@ -1976,6 +1978,7 @@ int cmd_timechart(int argc, const char **argv)
19761978
OPT_BOOLEAN('I', "io-only", &tchart.io_only,
19771979
"record only IO data"),
19781980
OPT_BOOLEAN('g', "callchain", &tchart.with_backtrace, "record callchain"),
1981+
OPT_STRING('o', "output", &output_record_data, "file", "output data file name"),
19791982
OPT_PARENT(timechart_common_options),
19801983
};
19811984
const char * const timechart_record_usage[] = {
@@ -2024,9 +2027,9 @@ int cmd_timechart(int argc, const char **argv)
20242027
}
20252028

20262029
if (tchart.io_only)
2027-
ret = timechart__io_record(argc, argv);
2030+
ret = timechart__io_record(argc, argv, output_record_data);
20282031
else
2029-
ret = timechart__record(&tchart, argc, argv);
2032+
ret = timechart__record(&tchart, argc, argv, output_record_data);
20302033
goto out;
20312034
} else if (argc)
20322035
usage_with_options(timechart_usage, timechart_options);

0 commit comments

Comments
 (0)