Commit 830f1854 authored by Ian Rogers's avatar Ian Rogers Committed by Namhyung Kim
Browse files

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: default avatarIan Rogers <irogers@google.com>
Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
parent 27e71125
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -94,6 +94,9 @@ RECORD OPTIONS
-g::
--callchain::
        Do call-graph (stack chain/backtrace) recording
-o::
--output=::
        Select the output file (default: perf.data)

EXAMPLES
--------
+9 −6
Original line number Diff line number Diff line
@@ -1651,7 +1651,7 @@ static int __cmd_timechart(struct timechart *tchart, const char *output_name)
	return ret;
}

static int timechart__io_record(int argc, const char **argv)
static int timechart__io_record(int argc, const char **argv, const char *output_data)
{
	unsigned int rec_argc, i;
	const char **rec_argv;
@@ -1659,7 +1659,7 @@ static int timechart__io_record(int argc, const char **argv)
	char *filter = NULL;

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

@@ -1786,7 +1786,8 @@ static int timechart__io_record(int argc, const char **argv)
}


static int timechart__record(struct timechart *tchart, int argc, const char **argv)
static int timechart__record(struct timechart *tchart, int argc, const char **argv,
			     const char *output_data)
{
	unsigned int rec_argc, i, j;
	const char **rec_argv;
@@ -1794,7 +1795,7 @@ static int timechart__record(struct timechart *tchart, int argc, const char **ar
	unsigned int record_elems;

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

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

		if (tchart.io_only)
			ret = timechart__io_record(argc, argv);
			ret = timechart__io_record(argc, argv, output_record_data);
		else
			ret = timechart__record(&tchart, argc, argv);
			ret = timechart__record(&tchart, argc, argv, output_record_data);
		goto out;
	} else if (argc)
		usage_with_options(timechart_usage, timechart_options);