Both patches merged into master, stable-2.2, stable-2.3 (with slight changes). These become the following master commits:
commit 8a7ad54be134997ab5985968ac6ada9ea58cafb9 Author: Ikaheimonen, JP <[email protected]> Date: Mon Oct 7 09:33:02 2013 -0400 Add usage reference count for tracepoints Keep track of how many libraries use a tracepoint, and disable the tracepoint when the number of users drops to zero. A new reference counter is added to tracepoint_entry. This keeps track of how many callsites use that tracepoint. When you have libraries and/or executables sharing tracepoints, you cannot just disable your tracepoints when the library is unregistered. You must check that the tracepoint is not used by any other libraries before you disable it. Function lib_disable_tracepoints becomes unnecessary, and is removed. Signed-off-by: Ikaheimonen, JP <[email protected]> Signed-off-by: Mathieu Desnoyers <[email protected]> commit 33f8ed8734a97e749206ec0e856ba2c28a56dcef Author: Mathieu Desnoyers <[email protected]> Date: Mon Oct 7 09:30:52 2013 -0400 tracepoint.c: Move add_callsite/remove_callsite further down in file In preparation for calling disable_tracepoint() from those functions. Signed-off-by: Mathieu Desnoyers <[email protected]> commit 60d8702955d702f95053b0355d156ae032ac2bc8 Author: Ikaheimonen, JP <[email protected]> Date: Thu Oct 3 06:46:27 2013 +0000 Store the callsites into the library callsite list Fix the issue where the callsites are registered but never properly unregistered. [ Edit by Mathieu Desnoyers: minor coding style fix: remove parenthesis. ] Signed-off-by: Ikaheimonen, JP <[email protected]> Signed-off-by: Mathieu Desnoyers <[email protected]> Thanks a lot for those fixes!! Mathieu ----- Original Message ----- > From: "JP Ikaheimonen" <[email protected]> > To: [email protected] > Sent: Thursday, October 3, 2013 2:46:20 AM > Subject: [lttng-dev] [LTTng UST PATCH 0/2] Bug fixes for callsite > unregistering > > The following two patches fix one bug each in LTTng UST. > > The first patch makes sure that when a library registers callsites, those > callsites are also properly unregistered. > It is only a matter of actually updating the list of callsites during > registration. > > The second patch deals with nested dynamic libraries. The current code > disables tracepoints whenever a library destructor gets called. > But if those tracepoints are also used by some other open library, then they > stop working. > The solution in the patch keeps track of how many callsites use a tracepoint, > and disables the tracepoint only after the last library logs off. > To work, the first patch must be applied first. > > JP Ikaheimonen | SW Development Engineer > http://go.mentor.com/sourceryanalyzer > Mentor Embedded(tm) | Nucleus(r) | Linux(r) | Android(tm) | Services | UI | > Multi-OS > Android is a trademark of Google Inc. Use of this trademark is subject to > Google Permissions. > Linux is the registered trademark of Linus Torvalds in the U.S. and other > countries. > > > > _______________________________________________ > lttng-dev mailing list > [email protected] > http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev > -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com _______________________________________________ lttng-dev mailing list [email protected] http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
