On 19/07/2019 06:08, Ravindra Kumar Meena wrote:
Hi,
I had a look at the variant examples documented here
https://diamon.org/ctf/#ex-variants. The examples explain how variant
work. First, it takes the id and on the basis of id passed it selects
the struct(compact, extended) present in variant data-type.
If id passed to the variant is in the range is [0,30] then variant
selects compact struct and if id=31 is passed to the variant then
extended struct is selected.
Since our recording timestamp is of 64 bit. So we have to pass 31 in
enum id. Our recording final event.header in binary stream file will
look this:
<enum_id=31> <event_id=0> <64-bit timestamp>
https://github.com/rmeena840/rtems-tools/commit/da100caecda9c69a08f73edbe849fad022fe1384
It was not previously before because I forgot to add event.header size
in both content_size and packet_size.
I tested the babeltrace output with/without event_header_compact. The
babeltrace is printing the same output.
[19:32:26.679052982] (+0.000000000) Record_Item RTEMS_RECORDING_EVENT: {
cpu_id = 18 }, { event = ( "RTEMS_RECORD_THREAD_SWITCH_IN" : container =
215 ), data = 167837739 }
[19:32:26.679099590] (+0.000046608) Record_Item RTEMS_RECORDING_EVENT: {
cpu_id = 5 }, { event = ( "RTEMS_RECORD_THREAD_SWITCH_OUT" : container =
216 ), data = 167837707 }
[19:32:26.679099590] (+0.000000000) Record_Item RTEMS_RECORDING_EVENT: {
cpu_id = 5 }, { event = ( "RTEMS_RECORD_THREAD_STACK_CURRENT" :
container = 209 ), data = 32320 }
[19:32:26.679099590] (+0.000000000) Record_Item RTEMS_RECORDING_EVENT: {
cpu_id = 5 }, { event = ( "RTEMS_RECORD_THREAD_SWITCH_IN" : container =
215 ), data = 151060501 }
I have also added the env object in the metadata. Please check it's
member value if they are up to the requirement of rtems.
https://github.com/rmeena840/rtems-tools/commit/96b082a6a31a1ebf6ea05b475a7e6c8378e456e7
Have a look
This looks very nice.
The next step is to translate the record items into corresponding events
of LTTNG. We should start with the following event which I guess is used
by Trace Compass for the task switch view. I don't know it, we have to
try it out. We can also look at the analyses package from LTTNG instead
of Trace Compass:
https://github.com/lttng/lttng-analyses
event {
name = "sched_switch";
id = 22;
stream_id = 0;
fields := struct {
integer { size = 8; align = 8; signed = 0; encoding = UTF8; base = 10;
} _prev_comm[16];
integer { size = 32; align = 8; signed = 1; encoding = none; base =
10; } _prev_tid;
integer { size = 32; align = 8; signed = 1; encoding = none; base =
10; } _prev_prio;
integer { size = 64; align = 8; signed = 1; encoding = none; base =
10; } _prev_state;
integer { size = 8; align = 8; signed = 0; encoding = UTF8; base = 10;
} _next_comm[16];
integer { size = 32; align = 8; signed = 1; encoding = none; base =
10; } _next_tid;
integer { size = 32; align = 8; signed = 1; encoding = none; base =
10; } _next_prio;
};
};
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.hu...@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel