[ltt-dev] trace-clock-userspace.patch for ARM/PowerPC ?

Mathieu Desnoyers compudj at krystal.dyndns.org
Tue Jul 26 14:02:41 EDT 2011


* Abbas Raza (abbas_raza at mentor.com) wrote:
> On 07/26/2011 10:17 PM, Mathieu Desnoyers wrote:
>> * 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
>>>
>
> Just to confirm that TSC's just have raw values of clock cycles and lttv  
> converts these values into sec/nsec by reading ltt_subbuffer_header ?

Yes, that's it.

Thanks,

Mathieu

>
>
> Thanks!
>
> Abbas Raza
>

-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com




More information about the lttng-dev mailing list