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>
Wed, 21 Jun 2017 18:28:14 +0000 (14:28 -0400)
commita0a4aa52bea4880e5f98ec26ffc2aa122a53c217
tree72d5d40778dfd60ae1ed7e32fb5ff75f2a3ad8ce
parent9cf5d0834a3ed20b286520a105a5bc3bc629e190
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.026031 seconds and 4 git commands to generate.