perf sched record
hat keine Option Ausgabedatei zu ändern (-i
ist für die Eingabe Datei nicht Verzeichnis) nach Manpage http://man7.org/linux/man-pages/man1/perf-sched.1.html
-i, --input=<file>
Eingabedateinamen. (Standard: perf.data es sei denn, stdin ist ein Fifo)
und zur Umsetzung: http://elixir.free-electrons.com/linux/v4.8/source/tools/perf/builtin-sched.c#L1896
tools/perf/builtin-sched.c
static int __cmd_record(int argc, const char **argv)
{
unsigned int rec_argc, i, j;
const char **rec_argv;
const char * const record_args[] = {
"record",
"-a",
"-R",
"-m", "1024",
"-c", "1",
"-e", "sched:sched_switch",
"-e", "sched:sched_stat_wait",
"-e", "sched:sched_stat_sleep",
"-e", "sched:sched_stat_iowait",
"-e", "sched:sched_stat_runtime",
"-e", "sched:sched_process_fork",
"-e", "sched:sched_wakeup",
"-e", "sched:sched_wakeup_new",
"-e", "sched:sched_migrate_task",
};
...
return cmd_record(i, rec_argv, NULL);
}
int cmd_sched(int argc, const char **argv, const char *prefix __maybe_unused)
{
const struct option sched_options[] = {
OPT_STRING('i', "input", &input_name, "file",
"input file name"),
OPT_INCR('v', "verbose", &verbose,
"be more verbose (show symbol address, etc)"),
OPT_BOOLEAN('D', "dump-raw-trace", &dump_trace,
"dump raw trace in ASCII"),
OPT_END()
};
....
static int perf_sched__read_events(struct perf_sched *sched)
{
...
struct perf_data_file file = {
.path = input_name,
.mode = PERF_DATA_MODE_READ,
.force = sched->force,
};
Aber! Die __cmd_record
von builtin-sched.c nennt Standard cmd_record
von builtin_record.c die -o
Option muss Ausgabedatei angeben: http://elixir.free-electrons.com/linux/v4.8/source/tools/perf/builtin-record.c#L1380
OPT_STRING('o', "output", &record.file.path, "file",
"output file name"),
So können Sie Zielpfad für perf sched record
von aktuellen Verzeichnis zu ändern, oder Sie können ändern versuchen perf sched record -o /mnt/disk1/perf.data ./Prog &
. Verwenden Sie den Verzeichnisnamen nicht als Argument von -i
(Eingabe für Bericht)/-o
(Ausgabe für Datensatz) Perf-Optionen.