forked from luck/tmp_suning_uos_patched
perf ftrace: Add option -D/--delay to delay tracing
This adds an option '-D/--delay' to allow us to start tracing some times later after workload is launched. Signed-off-by: Changbin Du <changbin.du@gmail.com> Acked-by: Namhyung Kim <namhyung@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Steven Rostedt (VMware) <rostedt@goodmis.org> Link: http://lore.kernel.org/lkml/20200808023141.14227-16-changbin.du@gmail.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
a8f87a5cb4
commit
6555c2f6db
|
@ -39,6 +39,10 @@ OPTIONS
|
|||
--pid=::
|
||||
Trace on existing process id (comma separated list).
|
||||
|
||||
-D::
|
||||
--delay::
|
||||
Time (ms) to wait before starting tracing after program start.
|
||||
|
||||
-a::
|
||||
--all-cpus::
|
||||
Force system-wide collection. Scripts run without a <command>
|
||||
|
|
|
@ -49,6 +49,7 @@ struct perf_ftrace {
|
|||
int graph_noirqs;
|
||||
int graph_verbose;
|
||||
int graph_thresh;
|
||||
unsigned int initial_delay;
|
||||
};
|
||||
|
||||
struct filter_entry {
|
||||
|
@ -596,13 +597,23 @@ static int __cmd_ftrace(struct perf_ftrace *ftrace, int argc, const char **argv)
|
|||
/* display column headers */
|
||||
read_tracing_file_to_stdout("trace");
|
||||
|
||||
if (write_tracing_file("tracing_on", "1") < 0) {
|
||||
pr_err("can't enable tracing\n");
|
||||
goto out_close_fd;
|
||||
if (!ftrace->initial_delay) {
|
||||
if (write_tracing_file("tracing_on", "1") < 0) {
|
||||
pr_err("can't enable tracing\n");
|
||||
goto out_close_fd;
|
||||
}
|
||||
}
|
||||
|
||||
perf_evlist__start_workload(ftrace->evlist);
|
||||
|
||||
if (ftrace->initial_delay) {
|
||||
usleep(ftrace->initial_delay * 1000);
|
||||
if (write_tracing_file("tracing_on", "1") < 0) {
|
||||
pr_err("can't enable tracing\n");
|
||||
goto out_close_fd;
|
||||
}
|
||||
}
|
||||
|
||||
while (!done) {
|
||||
if (poll(&pollfd, 1, -1) < 0)
|
||||
break;
|
||||
|
@ -827,6 +838,8 @@ int cmd_ftrace(int argc, const char **argv)
|
|||
"size of per cpu buffer", parse_buffer_size),
|
||||
OPT_BOOLEAN(0, "inherit", &ftrace.inherit,
|
||||
"trace children processes"),
|
||||
OPT_UINTEGER('D', "delay", &ftrace.initial_delay,
|
||||
"ms to wait before starting tracing after program start"),
|
||||
OPT_END()
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user