[lttng-dev] [PATCH lttng-tools v2 0/5] Support probes with the same name but different event payload

Jérémie Galarneau jeremie.galarneau at efficios.com
Wed May 30 14:44:45 EDT 2018


Merged with a number of fixes to the test patch. Thanks!

The CFLAGS have to be propagated to the probes target, and I added a target
to ensure the EXTRA_DIST files are copied to the build directory.

Also, the "comparison" test did not work on 32-bit x86 since "long" and
"int" have the same size on that architecture. The test expected the events
to be different, but they will be merged (as both are 32-bit integers).

Jérémie

On 9 February 2018 at 16:56, Francis Deslauriers <
francis.deslauriers at efficios.com> wrote:

> This patch set allows for multiple probes with the same name to be
> hooked on the same callsite. Right now, the Session Daemon only
> considers the name and signature of the events to determine if two
> events are identical. This could lead to trace corruptions when two
> probes would have the same name and signature but really different
> binary trace layouts.
>
> We now compare probes by doing a deep compare of every field. If two
> events are _exactly_ the same and have the same metadata then the same
> event ID will be used, if they are different a new event ID is created.
>
> When used with its corresponding UST patch set[1], it allows for dynamic
> library upgrade scenarios during tracing. The user can now dlopen a new
> version of a provider library and dlclose an old version without
> restarting the process.
>
> This patch set also includes regression tests for both the deep
> comparaison and the newly added dlclose capability.
>
> [1]: https://github.com/frdeso/lttng-ust/tree/dlclose-support
>
> Francis Deslauriers (5):
>   Fix: probes should be compared strictly by events metadata
>   Fix: calling ht_{hash, match}_enum with wrong argument
>   Tests: allow the use of regular expressions to match events
>   Tests: add function to validate the number of an event name in
>     metadata
>   Tests: add duplicated providers tests
>
>  configure.ac                                    |   1 +
>  src/bin/lttng-sessiond/Makefile.am              |   3 +-
>  src/bin/lttng-sessiond/ust-field-utils.c        | 289
> ++++++++++++++++++++++++
>  src/bin/lttng-sessiond/ust-field-utils.h        |  29 +++
>  src/bin/lttng-sessiond/ust-registry.c           |  46 +++-
>  tests/fast_regression                           |   1 +
>  tests/regression/ust/multi-lib/Makefile.am      | 114 ++++++++++
>  tests/regression/ust/multi-lib/README           |  21 ++
>  tests/regression/ust/multi-lib/callsites.c      |  34 +++
>  tests/regression/ust/multi-lib/callsites.h      |  21 ++
>  tests/regression/ust/multi-lib/multi-lib-test.c | 251
> ++++++++++++++++++++
>  tests/regression/ust/multi-lib/probes.c         |  18 ++
>  tests/regression/ust/multi-lib/probes.h         | 195 ++++++++++++++++
>  tests/regression/ust/multi-lib/test_multi_lib   | 262
> +++++++++++++++++++++
>  tests/unit/Makefile.am                          |   1 +
>  tests/utils/utils.sh                            |  27 ++-
>  16 files changed, 1299 insertions(+), 14 deletions(-)
>  create mode 100644 src/bin/lttng-sessiond/ust-field-utils.c
>  create mode 100644 src/bin/lttng-sessiond/ust-field-utils.h
>  create mode 100644 tests/regression/ust/multi-lib/Makefile.am
>  create mode 100644 tests/regression/ust/multi-lib/README
>  create mode 100644 tests/regression/ust/multi-lib/callsites.c
>  create mode 100644 tests/regression/ust/multi-lib/callsites.h
>  create mode 100644 tests/regression/ust/multi-lib/multi-lib-test.c
>  create mode 100644 tests/regression/ust/multi-lib/probes.c
>  create mode 100644 tests/regression/ust/multi-lib/probes.h
>  create mode 100755 tests/regression/ust/multi-lib/test_multi_lib
>
> --
> 2.7.4
>
>


-- 
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.lttng.org/pipermail/lttng-dev/attachments/20180530/755a4b8f/attachment.html>


More information about the lttng-dev mailing list