[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