Messages in this thread Patch in this message | | | Date | Wed, 24 Feb 2016 15:57:10 +0100 | From | Jiri Olsa <> | Subject | Re: [PATCH 29/48] perf record: Re-synthesize tracking events after output switching |
| |
On Mon, Feb 22, 2016 at 09:10:56AM +0000, Wang Nan wrote: > 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@huawei.com> > Signed-off-by: He Kuang <hekuang@huawei.com> > Cc: Arnaldo Carvalho de Melo <acme@redhat.com> > Cc: Jiri Olsa <jolsa@kernel.org> > Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> > Cc: Namhyung Kim <namhyung@kernel.org> > Cc: Zefan Li <lizefan@huawei.com> > Cc: pi3orama@163.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 2839715..3a11102 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);
hum, what's the reason to reinit machines data, it's still the same no?
I'd think that onlt record__synthesize call is needed in here
also I think we should introduce some perf_session helper for that.. like perf_session__init or such
thanks, jirka
> + record__synthesize(rec); > + } > return fd; > } > > -- > 1.8.3.4 >
| |