[ltt-dev] [PATCH] Do not initialize times before the frequency has been read
Mathieu Desnoyers
compudj at krystal.dyndns.org
Wed Sep 30 23:32:37 EDT 2009
* Mathieu Desnoyers (compudj at krystal.dyndns.org) wrote:
> * Benjamin Poirier (benjamin.poirier at polymtl.ca) wrote:
> > Do not calculate bogus begin and end values. Instead, skip that section of
> > code until the trace header has been read.
> >
>
> Will merge, thanks !
>
Ah, already merged, forget it ;)
Mathieu
> Mathieu
>
> > Signed-off-by: Benjamin Poirier <benjamin.poirier at polymtl.ca>
> > ---
> >
> > This is an independant fix of the problem addressed in
> > 04ad7785b5c1efc53fe5e71b8111a2793e923c6c "initialize fields of LttTrace to
> > ensure deterministic behavior and that valgrid does not complain". The end
> > result is the same but I think it makes a little more sense; merge it if you
> > agree.
> >
> > ltt/tracefile.c | 24 +++++++++++-------------
> > 1 files changed, 11 insertions(+), 13 deletions(-)
> >
> > diff --git a/ltt/tracefile.c b/ltt/tracefile.c
> > index 9cd1305..1b65455 100644
> > --- a/ltt/tracefile.c
> > +++ b/ltt/tracefile.c
> > @@ -764,11 +764,6 @@ LttTrace *ltt_trace_open(const gchar *pathname)
> > get_absolute_pathname(pathname, abs_path);
> > t->pathname = g_quark_from_string(abs_path);
> >
> > - t->start_tsc = 0;
> > - t->freq_scale = 1;
> > - t->start_freq = 1;
> > - t->start_time_from_tsc = ltt_time_zero;
> > -
> > g_datalist_init(&t->tracefiles);
> >
> > /* Test to see if it looks like a trace */
> > @@ -790,6 +785,7 @@ LttTrace *ltt_trace_open(const gchar *pathname)
> > closedir(dir);
> >
> > /* Open all the tracefiles */
> > + t->start_freq= 0;
> > if(open_tracefiles(t, abs_path, "")) {
> > g_warning("Error opening tracefile %s", abs_path);
> > goto find_error;
> > @@ -1389,22 +1385,24 @@ static gint map_block(LttTracefile * tf, guint block_num)
> >
> > tf->buffer.begin.cycle_count = ltt_get_uint64(LTT_GET_BO(tf),
> > &header->cycle_count_begin);
> > - tf->buffer.begin.freq = tf->trace->start_freq;
> > -
> > - tf->buffer.begin.timestamp = ltt_interpolate_time_from_tsc(tf,
> > - tf->buffer.begin.cycle_count);
> > tf->buffer.end.cycle_count = ltt_get_uint64(LTT_GET_BO(tf),
> > &header->cycle_count_end);
> > - tf->buffer.end.freq = tf->trace->start_freq;
> > -
> > tf->buffer.lost_size = ltt_get_uint32(LTT_GET_BO(tf),
> > &header->lost_size);
> > - tf->buffer.end.timestamp = ltt_interpolate_time_from_tsc(tf,
> > - tf->buffer.end.cycle_count);
> > tf->buffer.tsc = tf->buffer.begin.cycle_count;
> > tf->event.tsc = tf->buffer.tsc;
> > tf->buffer.freq = tf->buffer.begin.freq;
> >
> > + if (tf->trace->start_freq)
> > + {
> > + tf->buffer.begin.freq = tf->trace->start_freq;
> > + tf->buffer.begin.timestamp = ltt_interpolate_time_from_tsc(tf,
> > + tf->buffer.begin.cycle_count);
> > + tf->buffer.end.freq = tf->trace->start_freq;
> > + tf->buffer.end.timestamp = ltt_interpolate_time_from_tsc(tf,
> > + tf->buffer.end.cycle_count);
> > + }
> > +
> > /* FIXME
> > * eventually support variable buffer size : will need a partial pre-read of
> > * the headers to create an index when we open the trace... eventually. */
> > --
> > 1.6.3.3
> >
> >
> > _______________________________________________
> > ltt-dev mailing list
> > ltt-dev at lists.casi.polymtl.ca
> > http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
> >
>
> --
> Mathieu Desnoyers
> OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
>
> _______________________________________________
> ltt-dev mailing list
> ltt-dev at lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
>
--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
More information about the lttng-dev
mailing list