On Thu, May 2, 2013 at 4:43 PM, Mathieu Desnoyers
<[email protected]> wrote:
> Jérémie, can you have a look at these questions ?
>
> Thanks,
>
> Mathieu
>
> * Salman Rafiq ([email protected]) wrote:
>> Hello All,
>>
>> In continuation to my previous questions related to reading CTF traces from 
>> particular timestamp, I can now further summarize few problems/questions I 
>> have:
>>
>>
>> 1.       Is it possible to seek CTF file_stream using 'begin' and 'end' 
>> iterator position i.e. BT_SEEK_TIME?
>>

I'm not sure I understand your question. The iterator API provides a
seeking mechanism that accepts time-based positions expressed in
nanoseconds (with bt_iter_pos.type == BT_SEEK_TIME) and
BT_SEEK_BEGIN/BT_SEEK_LAST.

See bt_iter_set_pos(struct bt_iter *iter, const struct bt_iter_pos
*iter_pos) (include/babeltrace/iterator.h:114)

>>
>>
>> a.       We cannot use babel trace API for CTF iterator creation using 
>> defined start and end position based on time. Seems this is in progress?

It is supported via the position parameters of bt_ctf_iter_create
(include/babeltrace/ctf/iterator.h:62). Are you getting an error?

>>
>> b.      The other possible solution I am using, is to create the iterator 
>> using defaults, and then later use API to 'create iterator time position 
>> based on Raw Timestamp (only takes raw time)' and then 'set iterator 
>> position to that timed position'.
>>

This should work too.

>>
>>
>> 2.       But, since the area of interest for me was only the time when user 
>> application which I am tracing using Lttng-kernel tracer, started recording 
>> events (application use external trace recording format).
>>
>> User application contains a definition file which tells me the epoch time 
>> (us resolution) when it started and stopped tracing. I wanted to use this 
>> information to set iterator positions.
>>
>>
>>
>> a.       Question is Can I convert this time to raw time which babeltrace 
>> API takes as an argument?
>>
>> b.      Or Is there any way to read Clock struct from CTF metadata file (is 
>> there any scope defined for this), so that I can extract offset variable 
>> value to convert epoch time from other trace to raw time?
>>

Yes. I suggest you have a look at what the ctf-text plugin does in
ctf_text_write_event[1] and perhaps ctf_get_real_timestamp[2] to
understand these time conversions.

Regards,
Jérémie

[1] formats/ctf-text/ctf-text.c:272
[2] formats/ctf/events-private.h:38

>>
>> It will be really great if I can get few suggestions/help related to these 
>> issues.
>> Thanking in anticipation!
>>
>>
>> Best Regards,
>>
>> Salman Rafiq
>> Research Engineer
>> Industrial Communication
>> Fraunhofer-Einrichtung für Systeme der Kommunikationstechnik ESK
>>
>> Hansastraße 32 | 80686 München
>> Telefon, Fax:  +49 89 547088-356 | +49 89 547088-66-356
>> E-Mail:   [email protected]<http://www.esk.fraunhofer.de/>
>>
>> Internet:
>> http://www.esk.fraunhofer.de<http://www.esk.fraunhofer.de/>
>> http://www.facebook.com/FraunhoferESK
>> http://www.twitter.com/FraunhoferESK
>>
>> Von: Salman Rafiq [mailto:[email protected]]
>> Gesendet: Mittwoch, 18. Juli 2012 15:28
>> An: [email protected]
>> Betreff: [lttng-dev] Reading CTF trace from time T
>>
>> Hello All,
>>
>> I am tracing a user application using lttng kernel tracer, i.e.,
>>
>> Start lttng kernel trace
>> ./application
>> Stop lttng kernel trace
>>
>> Before I was reading kernel CTF trace using babeltrace API's from beginning 
>> of trace, e.g.,
>> struct  bt_iter_pos  begin_pos
>> struct bt_ctf_iter *iterator
>>
>> begin_pos.type = BT_SEEK_BEGIN
>> iterator = create_iterator(context,  &begin_pos, NULL)
>> .. and then read events start from that iterator postion.
>>
>> Recently, I have been trying to seek trace using timestamp from when the 
>> application started to application end.
>> I would like to know if I am doing it right. Would the method below enough 
>> to achieve this? Or I am missing something here :-S
>>
>> begin_pos.type = BT_SEEK_TIME
>> end_pos.type = BT_SEEK_TIME
>>
>> begin_pos.u.seek_time = timestamp1 (for now manually taken from CTF kernel 
>> trace when application started)
>> end_pos.u.seek_time = timestamp2 (for now manually taken from CTF kernel 
>> trace when application ended)
>>
>> iterator = create_iterator(context,  &begin_pos, &end_pos);
>> and then with reading events at iterator position until end_pos.
>>
>>
>> I am using babeltrace package version "1.0.0-pre4".
>> Any help related to achieving this functionality will be highly appreciated.
>>
>> Best Regards,
>> Salman
>>
>>
>> --
>> Salman Rafiq
>> Industrial Communication
>> Fraunhofer-Einrichtung für Systeme der Kommunikationstechnik ESK
>>
>> Hansastraße 32 | 80686 München
>> Telefon, Fax:  +49 89 547088-356 | +49 89 547088-66-356
>> E-Mail:   [email protected]<http://www.esk.fraunhofer.de/>
>>
>> Internet:
>> http://www.esk.fraunhofer.de<http://www.esk.fraunhofer.de/>
>> http://www.facebook.com/FraunhoferESK
>> http://www.twitter.com/FraunhoferESK
>>
>
> Content-Description: ATT00001.txt
>> _______________________________________________
>> lttng-dev mailing list
>> [email protected]
>> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
>
>
> --
> Mathieu Desnoyers
> EfficiOS Inc.
> http://www.efficios.com



-- 
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com

_______________________________________________
lttng-dev mailing list
[email protected]
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

Reply via email to