<div dir="ltr"><div>Hi Carlo,</div><div><br></div><div>Events do indeed need to be passed in order. You</div><div>can use a heap to sort the streams as they are read. This is the strategy used</div><div>by babeltrace to multiplex streams and present them chronologically.</div><div><br></div><div>Otherwise, if the streams contain the same event descriptions, you could convert</div><div>the per-CPU event sets independently and combine the stream files with</div><div>a single metadata file to obtain a "complete" trace.</div><div><br></div><div>Regards,<br></div><div>Jérémie<br></div><div></div><div><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 28 May 2019 at 09:11, Carlo Caione <<a href="mailto:carlo.caione@gmail.com">carlo.caione@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
I'm using the babeltrace python bindings (v1.5.x) to convert some raw <br>
data I have into a CTF file.<br>
<br>
This raw data is organized in fixed data chunks composed by serializing <br>
the events for each CPU:<br>
<br>
[cpu0, cpu0, cpu0, ..., cpu1, cpu1, cpu1, ..., cpu2,... ]<br>
<br>
Each event for each CPU has a timestamp that is monotonic within each <br>
CPU set.<br>
<br>
I wanted to create one stream per CPU and since the events are the same <br>
for each CPU, I was using a single stream_class linked to a stream <br>
object for each CPU. Something in the structure similar to [0] with:<br>
<br>
stream_cpu0 = writer.create_stream(stream_class)<br>
stream_cpu1 = writer.create_stream(stream_class)<br>
stream_cpu2 = writer.create_stream(stream_class)<br>
...<br>
<br>
The problem is that being the clock one for the stream_class when <br>
feeding the events to the library I get a:<br>
<br>
ValueError: Invalid time value<br>
<br>
When the first event on cpu1 is parsed, because the timestamp is in the <br>
past with respect to the timestamp of the latest event of the cpu0.<br>
<br>
I can sort the events before feeding them to babeltrace but this seems <br>
sub-optimal to me. My question is: am I using the library correctly or <br>
there is any way to achieve this?<br>
<br>
Thank you,<br>
<br>
[0] <a href="https://lists.lttng.org/pipermail/lttng-dev/2015-November/025231.html" rel="noreferrer" target="_blank">https://lists.lttng.org/pipermail/lttng-dev/2015-November/025231.html</a><br>
<br>
--<br>
Carlo Caione<br>
_______________________________________________<br>
lttng-dev mailing list<br>
<a href="mailto:lttng-dev@lists.lttng.org" target="_blank">lttng-dev@lists.lttng.org</a><br>
<a href="https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev" rel="noreferrer" target="_blank">https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev</a><br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature">Jérémie Galarneau<br>EfficiOS Inc.<br><a href="http://www.efficios.com" target="_blank">http://www.efficios.com</a></div></div>