[ltt-dev] trace-clock-userspace.patch for ARM/PowerPC ?
Mathieu Desnoyers
compudj at krystal.dyndns.org
Tue Jul 26 13:17:32 EDT 2011
* Abbas Raza (abbas_raza at mentor.com) wrote:
[...]
> Hi Mathieu,
>
> Some confusion here :(
>
> In case of LTTng 0.x, when we take kernel traces then timestamps for
> these traces is based on TSC/TB . So after that we view these traces by
> lttv and it shows timestamps with all events which occurred.
> I print the timestamp in kernel ltt function 'ltt_trace_alloc()' and it
> comes out to be 22944596907 (by calling trace_clock_read64() ). While
> lttv show Birth sec of first event to 367 second. How this conversion is
> made from TSC to the Birth sec/nsec value displayed in lttv? just want
> to confirm that whether timestamps shown in lttv (Birth sec/nsec) are
> based on TSC values... if yes then how TSC values are converted to Birth
> sec/nsec and i no then from where lttv gets timestamps to be displayed?
> Or in simple words, do kernel traces which we get contain timestamps
> based simply on TSC values or it is something else?
Yes, we write, in the lttng 0.x headers, the following information:
struct ltt_subbuffer_header {
[...]
uint64_t start_freq; /*
* Frequency at trace start,
* used all along the trace.
*/
uint32_t freq_scale; /* Frequency scaling (divisor) */
[...]
}
so by using the start frequency and the scale, we can convert from TSC
values to nanoseconds. Please note that LTTng 0.x requires the clock
source to appear as if it has a constant rate.
These values map to trace_clock_frequency() and trace_clock_freq_scale()
trace clock functions.
Best regards,
Mathieu
>
> Thanks a lot again for help :)
>
>
> Abbas Raza
>
--
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list