<div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">>     Creating the metadata is one of the first actions a plugin must do<br>
> <br>
> Okay.<br>
> <br>
> I sent you one metadata file which had 1160 events. So should I add the <br>
> rtems 512 events in metadata?<br>
<br>
At the moment a detailed description of individual events is not <br>
necessary. We have to get the basics in place first. So for now an 10 <br>
bit event number is enough.<br></blockquote><div>in recorddata.h I can see that out of 32 bits 10 bits are reserved for event and 22 bits are reserved for time of the event. </div><div>With event number you mean 10 bits reserved for events?</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> <br>
> The problem I am facing here is how to relate the metadata file with <br>
> rtems event record item?<br>
<br>
This depends on what you want to do. It seems the babeltrace plugin is a <br>
bit too complex to write at the moment. Maybe we should start with <br>
something simpler.<br>
<br>
The record client in your rtems-tools repository does the following:<br>
<br>
target --> TCP stream with struct rtems_record_items -> client -> <br>
conversion -> human readable text<br></blockquote><div>Okay </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
We should turn this into:<br>
<br>
target --> TCP stream with struct rtems_record_items -> client -> <br>
conversion -></blockquote><div>Okay up to this everything is working fine .</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> CTF (metadata + event stream) -> files -> babeltrace -> <br>
human readable text<br></blockquote><div>We have to deal with this. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
So the first thing we have to figure out is how babeltrace reads an <br>
arbitrary CTF session (metadata + event stream).</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
The next thing is to look at and modify print_item() in <br>
misc/record/record-main.c. In this function you get one client_item <br>
after another.<br>
<br>
typedef struct client_item {<br>
   union {<br>
     SLIST_ENTRY( client_item ) free_node;<br>
     RB_ENTRY( client_item )    active_node;<br>
   };<br>
   uint64_t                     ns;<br>
   uint32_t                     cpu;<br>
   rtems_record_event           event;<br>
   uint64_t                     data;<br>
   uint64_t                     counter;<br>
} client_item;<br>
<br>
We are only interested in ns, cpu, event and data. So just convert this to<br>
<br>
typedef struct {<br>
   uint64_t                     ns;<br>
   uint32_t                     cpu;<br>
   rtems_record_event           event;<br>
   uint64_t                     data;<br>
} ctf_event;<br></blockquote><div>If we are removing SLIST_ENTRY( client_item ) and RB_ENTRY( client_item ) then we will also have to remove it's SLIST_HEAD(), RB_HEAD() etc.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
and append this item into a file (the event stream file). For this <br>
ctf_event you need a TSDL metadata. Save this metadata file.<br></blockquote><div>I have tried babeltrace example [1]. The babeltrace was using generated metadata file.</div><div>We can also try barectf. It just needs yaml file which generated c code.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Import the metadata and event stream in babeltrace and let it print a <br>
human readable form.<br>
<br>
Does this look like something you can do?<br></blockquote><div>Okay. I will try. This was very much helpful but I think babeltrace will definitely need generated metadata file.</div><div><br></div><div> </div></div>[1] <span style="color:rgb(17,85,204);text-decoration-line:underline"><a href="https://lists.rtems.org/pipermail/devel/2019-May/025921.html">https://lists.rtems.org/pipermail/devel/2019-May/025921.html</a></span><br clear="all"><div><br></div>-- <br><div dir="ltr" class="m_-8008732006169717015gmail_signature"><div dir="ltr"><div><div dir="ltr"><font size="4"><b>Ravindra Kumar Meena</b></font>,<div><span style="color:rgb(102,102,102)">B. Tech. Computer Science and Engineering,<br></span></div><div><span style="color:rgb(102,102,102)"><a href="https://www.iitism.ac.in/" style="color:rgb(17,85,204)" target="_blank">Indian Institute of Technology (Indian School of Mines)</a>, Dhanbad</span></div></div></div></div></div></div>