On 18/06/2019 08:55, Ravindra Kumar Meena wrote:
     > About a week ago I raised a query on decoder(source plugin) examples
     > shared by them.
     >
     > They suggested that if we plan to use Babeltrace 2 plugin system,
    the
     > metadata file
     > will be generated based on the trace representation given by the
    source
     > plugin.
     >
     > https://lists.lttng.org/pipermail/lttng-dev/2019-June/029057.html
     >
     > Please have a look

    Yes, this is why I asked about a TSDL description last week:

    https://lists.rtems.org/pipermail/devel/2019-June/026101.html

    Creating the metadata is one of the first actions a plugin must do

Okay.

I sent you one metadata file which had 1160 events. So should I add the rtems 512 events in metadata?

At the moment a detailed description of individual events is not necessary. We have to get the basics in place first. So for now an 10 bit event number is enough.


The problem I am facing here is how to relate the metadata file with rtems event record item?

This depends on what you want to do. It seems the babeltrace plugin is a bit too complex to write at the moment. Maybe we should start with something simpler.

The record client in your rtems-tools repository does the following:

target --> TCP stream with struct rtems_record_items -> client -> conversion -> human readable text

We should turn this into:

target --> TCP stream with struct rtems_record_items -> client -> conversion -> CTF (metadata + event stream) -> files -> babeltrace -> human readable text

So the first thing we have to figure out is how babeltrace reads an arbitrary CTF session (metadata + event stream).

The next thing is to look at and modify print_item() in misc/record/record-main.c. In this function you get one client_item after another.

typedef struct client_item {
  union {
    SLIST_ENTRY( client_item ) free_node;
    RB_ENTRY( client_item )    active_node;
  };
  uint64_t                     ns;
  uint32_t                     cpu;
  rtems_record_event           event;
  uint64_t                     data;
  uint64_t                     counter;
} client_item;

We are only interested in ns, cpu, event and data. So just convert this to

typedef struct {
  uint64_t                     ns;
  uint32_t                     cpu;
  rtems_record_event           event;
  uint64_t                     data;
} ctf_event;

and append this item into a file (the event stream file). For this ctf_event you need a TSDL metadata. Save this metadata file.

Import the metadata and event stream in babeltrace and let it print a human readable form.

Does this look like something you can do?

--
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

Reply via email to