Tracking events describe kernel and threads. They are generated by reading /proc/kallsyms, /proc/*/maps and /proc/*/task/* during initialization of 'perf record', serialized into event sequences and put at the head of 'perf.data'. In case of output switching, each output file should contain those events.
This patch calls record__synthesize() during output switching, so the event sequences described above can be collected again. Signed-off-by: Wang Nan <wangn...@huawei.com> Tested-by: Arnaldo Carvalho de Melo <a...@redhat.com> Cc: Adrian Hunter <adrian.hun...@intel.com> Cc: He Kuang <heku...@huawei.com> Cc: Jiri Olsa <jo...@kernel.org> Cc: Masami Hiramatsu <mhira...@kernel.org> Cc: Namhyung Kim <namhy...@kernel.org> Cc: Zefan Li <lize...@huawei.com> Cc: pi3or...@163.com Link: http://lkml.kernel.org/r/1460643725-167413-6-git-send-email-wangn...@huawei.com Signed-off-by: He Kuang <heku...@huawei.com> Signed-off-by: Arnaldo Carvalho de Melo <a...@redhat.com> --- tools/perf/builtin-record.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 743af13..2965d83 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -500,6 +500,8 @@ record__finish_output(struct record *rec) return; } +static int record__synthesize(struct record *rec); + static int record__switch_output(struct record *rec, bool at_exit) { @@ -528,6 +530,11 @@ record__switch_output(struct record *rec, bool at_exit) if (!quiet) fprintf(stderr, "[ perf record: Dump %s.%s ]\n", file->path, timestamp); + + /* Output tracking events */ + if (!at_exit) + record__synthesize(rec); + return fd; } -- 1.8.3.4