Messages in this thread | | | Date | Mon, 13 Dec 2010 14:48:54 -0200 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH 1/2] perf tools: Add reference timestamp to perf header |
| |
Em Mon, Dec 13, 2010 at 04:54:56PM +0100, Frederic Weisbecker escreveu: > On Mon, Dec 13, 2010 at 07:39:24AM -0700, David S. Ahern wrote: > > On 12/12/10 13:16, Frederic Weisbecker wrote: > > >> int perf_session__create_kernel_maps(struct perf_session *self) > > >> { > > >> int ret = machine__create_kernel_maps(&self->host_machine); > > >> @@ -167,6 +190,9 @@ struct perf_session *perf_session__new(const char *filename, int mode, bool forc > > >> */ > > >> if (perf_session__create_kernel_maps(self) < 0) > > >> goto out_delete; > > >> + > > >> + if (perf_session__create_ref_time(self) < 0) > > >> + goto out_delete;
> > > So, it does record it anytime?
> > Simplest to always add it the header as it does no harm if not used. > > To make it conditional means adding an input parameter to > > perf_session__new() and then updating all the callers.
> > Is the preference to make it conditional?
> No, I suspect the overhead is plain unnoticeable. And if it becomes > any problem one day, we can still make that conditional later.
Right, but it just ocurred to me, can't we encode this in the file stat? Also, how do we deal with:
$ perf record --help <SNIP> -A, --append Append to the output file to do incremental profiling. <SNIP>
?
I now think this should be implemented as a PERF_RECORD_WALL_CLOCK synthesized event, to be inserted just before we start collecting the other events.
That way, when --appending, we just insert another and use that from that point on.
Look at tools/perf/util/event.h, enum perf_user_event_type and look how those are synthesized.
Thanks,
- Arnaldo
| |