[lttng-dev] [barectf] no nested types?

Philippe Proulx eeppeliteloop at gmail.com
Mon Feb 8 09:58:34 EST 2021


On Mon, Feb 8, 2021 at 5:27 AM RADERMACHER Ansgar via lttng-dev
<lttng-dev at lists.lttng.org> wrote:
>
> Dear all,
>
> having thought a bit more about it, I can see now that nested types are problematic in general: some types in the language need to be mapped to types that match but are not identical, i.e. have likely a different memory layout. This would be problematic for nested types.

Exactly: compound types represent a challenge in general because we
don't know the memory layout details of the user data, so we can't just
copy bytes as is to a CTF data stream.

There are strategies to achieve such a feature in barectf and in
LTTng-UST (similar problem), but implementing and testing them is not on
the roadmap currently.

This is why both barectf and LTTng-UST support basic arrays of
simple/scalar instances (numbers and strings), but not the rest, even if
CTF itself can represent more complex data.

barectf supports nested static arrays [1], but not nested dynamic
arrays.

Hope this helps,

Phil

[1]: https://barectf.org/docs/barectf/3.0/yaml/static-array-ft-obj.html

> Thus, I'm opting for flattening data (with the exception of lists).
>
> Best regards
>
> Ansgar
>
>
> ________________________________
> From: lttng-dev [lttng-dev-bounces at lists.lttng.org] on behalf of RADERMACHER Ansgar via lttng-dev [lttng-dev at lists.lttng.org]
> Sent: Friday, February 05, 2021 22:58
> To: lttng-dev at lists.lttng.org
> Subject: [lttng-dev] [barectf] no nested types?
>
> Hello,
>
> I've generated a config.yaml from type definitions in UML. If the type of a payload field is a UML DataType, the generator produces an associated type alias file with "class = structure" and the contained members.
>
> When I tried to compile the configuration file, I get an error message from barectf:
> `field-type` property: Nested structure field types are not supported
>
> It this really not supported or are there other mechanisms that enable the use of nested types? If not supported, it would be an important restriction which seems to be not prominently documented (in [1], there is a parenthesis "except a structure field type object" but it's easy to miss)
>
> Best regards
>
> Ansgar
>
>
> [1] https://barectf.org/docs/barectf/3.0/yaml/struct-ft-obj.html
>
>
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev


More information about the lttng-dev mailing list