[lttng-dev] CTF: trying to understand "missing fields"

Vlad vlad at demoninsight.com
Mon Oct 21 18:53:21 EDT 2013


Greetings,

	The CTF spec contains a couple of mentions of how one could define a missing field bitmask:

"The header is extended in the rare occasions where the information cannot be
represented in the ranges available in the standard event header. They are also
used in the rare occasions where the data required for a field could not be
collected: the flag corresponding to the missing field within the missing_fields
array is then set to 1"

and

"An example of event-specific event context is to declare a bitmap of missing
fields, only appended after the stream event context if the extended event
header is selected. NR_FIELDS is the number of fields within the event (a
numeric value).

  event {
    context = struct {
      variant <id> {
        struct { } compact;
        struct {
          uint1_t missing_fields[NR_FIELDS]; /* missing event fields bitmap */
        } extended;
      } v;
    };
    ...
  }"

Is this capability reflected in the current lttng builds? My understanding so far is that "missingness" is not part of CTF grammar per se but is rather a convention (i.e. declaring an array of uint1_t's with a particular name "missing_fields") -- is this correct? In the extended header example above, how is a missing_fields slot mapped to its corresponding field -- are the fields assumed to be ordered, with a slot per field in that ordering?

To give some context for my use case:

- I generate my own binary data and I would like to leverage TMF and/or babeltrace to view it
- my in-memory event format is roughly <event ID> + <missing field bitmap> + <fields that are present> (with certain alignment constraints) and I would like to understand whether I can describe it using CTF
- in principle, I can post-process my data as needed so it fits some CTF grammar but I simply don't quite understand how this missing fields feature works

Any help would be much appreciated. 

Thanks,
Vlad





More information about the lttng-dev mailing list