lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 5 Feb 2016 14:02:00 +0000 From: Wang Nan <wangnan0@...wei.com> To: Alexei Starovoitov <ast@...nel.org>, Arnaldo Carvalho de Melo <acme@...hat.com>, Arnaldo Carvalho de Melo <acme@...nel.org>, Brendan Gregg <brendan.d.gregg@...il.com> CC: Adrian Hunter <adrian.hunter@...el.com>, Cody P Schafer <dev@...yps.com>, "David S. Miller" <davem@...emloft.net>, He Kuang <hekuang@...wei.com>, Jérémie Galarneau <jeremie.galarneau@...icios.com>, Jiri Olsa <jolsa@...nel.org>, Kirill Smelkov <kirr@...edi.com>, Li Zefan <lizefan@...wei.com>, Masami Hiramatsu <masami.hiramatsu.pt@...achi.com>, Namhyung Kim <namhyung@...nel.org>, Peter Zijlstra <peterz@...radead.org>, <pi3orama@....com>, Wang Nan <wangnan0@...wei.com>, <linux-kernel@...r.kernel.org> Subject: [PATCH 35/54] perf record: Re-synthesize tracking events after output switching 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 <wangnan0@...wei.com> Signed-off-by: He Kuang <hekuang@...wei.com> Cc: Arnaldo Carvalho de Melo <acme@...hat.com> Cc: Jiri Olsa <jolsa@...nel.org> Cc: Masami Hiramatsu <masami.hiramatsu.pt@...achi.com> Cc: Namhyung Kim <namhyung@...nel.org> Cc: Zefan Li <lizefan@...wei.com> Cc: pi3orama@....com --- tools/perf/builtin-record.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 238234e..de51134 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -529,6 +529,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) { @@ -557,6 +559,15 @@ record__switch_output(struct record *rec, bool at_exit) if (!quiet) fprintf(stderr, "[ perf record: Dump %s.%s ]\n", file->path, timestamp); + + /* Reinit machine */ + if (!at_exit) { + machines__exit(&rec->session->machines); + machines__init(&rec->session->machines); + perf_session__create_kernel_maps(rec->session); + perf_session__set_id_hdr_size(rec->session); + record__synthesize(rec); + } return fd; } -- 1.8.3.4
Powered by blists - more mailing lists