ctf: remove strict metadata mode, update automatic CC mapping behaviour
authorPhilippe Proulx <eeppeliteloop@gmail.com>
Fri, 16 Jun 2017 01:36:57 +0000 (21:36 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 16 Jun 2017 19:57:36 +0000 (15:57 -0400)
commit7bf5af54b2e6cf5ed45f3416f96d837a120467ca
tree4b3ef5933f32b2df13df41c40af476e9a268f99d
parentcf76ce92f8f8ae74ec9e1305e8ef83ac1bc4fb26
ctf: remove strict metadata mode, update automatic CC mapping behaviour

Update the automatic mapping of specific fields to clock classes when
no explicit mapping is found in the integer field type to follow this:

                     | 0 CCs             | 1 CC             | 2+ CCs
    --------------------------------------------------------------------
    FT is mapped     | Unreachable       | OK as is         | OK as is
    FT is not mapped | Map to auto 1 GHz | Map to single CC | Error

The (FT is not mapped, 0 CC) cell follows Babeltrace 1's behaviour: when
a special timestamp field is found in the packet context
(`timestamp_begin` or `timestamp_end`) or event header (`timestamp`)
scope, when this timestamp field is not explicitly mapped to a clock
class, and when there's no clock class at this point in the trace, then
create an automatic, 1 GHz clock class and, in this case, name it
`default`. Map the field to this implicit 1 GHz clock class. See
section 8 ("Clocks") of CTF v1.8.2.

Cell (FT is not mapped, 0 CC) is a fix for old versions of LTTng, and
cell (FT is not mapped, 1 CC) is a fix for old versions of CTF writer.
Cell (FT is not mapped, 2+ CCs) is an error because we wouldn't know
which clock class to automatically map the field to.

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
plugins/ctf/common/metadata/decoder.c
plugins/ctf/common/metadata/decoder.h
plugins/ctf/common/metadata/visitor-generate-ir.c
plugins/ctf/fs-src/fs.c
plugins/ctf/fs-src/metadata.c
plugins/ctf/fs-src/metadata.h
This page took 0.024946 seconds and 4 git commands to generate.