Event Recording/CTF: Get closer to LTTNG output

Sebastian Huber sebastian.huber at embedded-brains.de
Fri Jul 12 05:38:15 UTC 2019


On 12/07/2019 05:58, Ravindra Kumar Meena wrote:
>         Why don't you simply use the above in your C code as well?
> 
>     Yes. I tried that but compiler reports the value is too large.
>     ../misc/record/record-main.c:357:27: warning: integer constant is
>     too large for its type
>           ctf_header.uuid[16] = 0x6a7715d0b5024c6586786777ac7f755a;
> 
> 
> Okay. I was thinking in the wrong direction.

Could you please obtain a C language book for the remainder of this 
project. You have very basic issues with this programming language. I 
don't have time to teach you very basic C as a side-effect of this GSoC 
project.

I simplified the uuid initialization a bit:

https://github.com/rmeena840/rtems-tools/commit/5fc194cc1f04f8feea980243e5997f7cd6f91313

> I have now added uuid also 
> in the stream header.
> 
> https://github.com/rmeena840/rtems-tools/commit/fa17148220dfd9a1df1f3d8cfad0b4afd19c331f
> 
> https://github.com/rmeena840/rtems-tools/commit/05dbb29c72a5cceee054a996a8e799520d7b2817
> 
> Tested on AWS. No warnings.
> 
> In the packet.header you mentioned to added stream_instance_id. See below.
> What is it? 

I don't know. Please ask this on the LTTNG mailing list. For now just 
add this field and set it to zero.

> In the documentation it is mentioned that packet.header can 
> only contain three values(magic, uuid, stream_id).

Which documentation, which section?

> 
> trace {
>          major = 1;
>          minor = 8;
>          uuid = "6a7715d0-b502-4c65-8678-6777ac7f755a";
>          byte_order = le;
>          packet.header := struct {
>                  uint32_t magic;
>                  uint8_t  uuid[16];
>                  uint32_t stream_id;
>                  uint64_t stream_instance_id;
>          };
> };

LTTNG uses this stuff, so please use it also as is.

Please name the structures in the code and the CFT metadata 
consistently. You have at least these structures:

* packet header

* packet context

* event header

* event context

* specific events

You currently have only:

typedef struct ctf_header {
   uint32_t                     ctf_magic;
   uint8_t                      uuid[ 16 ];
   uint32_t                     stream_id;
   uint32_t                     cpu_id;
} ctf_header;

typedef struct ctf_event {
   uint64_t                     ns;
   rtems_record_event           event;
   uint64_t                     data;
} __attribute__((__packed__)) ctf_event;

You have to re-organize this to match the LTTNG structures.

-- 
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.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.


More information about the devel mailing list