Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf record: Force enable --timestamp-filename when --switch-output is provided

Without this patch, the last output doesn't have timestamp appended if
--timestamp-filename is not explicitly provided. For example:

# perf record -a --switch-output &
[1] 11224
# kill -s SIGUSR2 11224
[ perf record: dump data: Woken up 1 times ]
# [ perf record: Dump perf.data.2015122622372823 ]

# fg
perf record -a --switch-output
^C[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.027 MB perf.data (540 samples) ]

# ls -l
total 836
-rw------- 1 root root 33256 Dec 26 22:37 perf.data <---- *Odd*
-rw------- 1 root root 817156 Dec 26 22:37 perf.data.2015122622372823

Signed-off-by: Wang Nan <wangnan0@huawei.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1461178794-40467-5-git-send-email-wangnan0@huawei.com
Signed-off-by: He Kuang <hekuang@huawei.com>
[ Updated man page, that also got an entry for --timestamp-filename ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Wang Nan and committed by
Arnaldo Carvalho de Melo
eca857ab 3c1cb7e3

+8
+5
tools/perf/Documentation/perf-record.txt
··· 347 347 --all-user:: 348 348 Configure all used events to run in user space. 349 349 350 + --timestamp-filename 351 + Append timestamp to output file name. 352 + 350 353 --switch-output:: 351 354 Generate multiple perf.data files, timestamp prefixed, switching to a new one 352 355 when receiving a SIGUSR2. ··· 357 354 A possible use case is to, given an external event, slice the perf.data file 358 355 that gets then processed, possibly via a perf script, to decide if that 359 356 particular perf.data snapshot should be kept or not. 357 + 358 + Implies --timestamp-filename. 360 359 361 360 SEE ALSO 362 361 --------
+3
tools/perf/builtin-record.c
··· 1351 1351 return -EINVAL; 1352 1352 } 1353 1353 1354 + if (rec->switch_output) 1355 + rec->timestamp_filename = true; 1356 + 1354 1357 if (!rec->itr) { 1355 1358 rec->itr = auxtrace_record__init(rec->evlist, &err); 1356 1359 if (err)