Am Do., 20. Mai 2021 um 19:18 Uhr schrieb Mathieu Desnoyers <mathieu.desnoy...@efficios.com>: > > > > ----- On May 20, 2021, at 12:51 PM, Norbert Lange nolang...@gmail.com wrote: > > > Am Do., 20. Mai 2021 um 18:25 Uhr schrieb Mathieu Desnoyers > > <mathieu.desnoy...@efficios.com>: > >> > >> ----- On May 20, 2021, at 11:54 AM, Norbert Lange nolang...@gmail.com > >> wrote: > >> [...] > >> > >> >> What prevents you from linking against lttng-ust.so again ? > >> > > >> > I did not poke around enough with Lttng to be confident it wont have > >> > side effects, > >> > I really don't want it active in production. It doesn't seem there is > >> > much public knowledge with Xenomai either. > >> > lttng-ust.so will spawn threads, lttng-ust-tracepoint.so is mostly > >> > passive, > >> > >> There is indeed a split between instrumentation and runtime threads done > >> with lttng-ust-tracepoint.so vs lttng-ust.so. > >> > >> I understand that this split is missing for tracelog and tracef, and > >> would be a good thing to have. > >> > >> I would be interested to move the tracelog and tracef implementation > >> from liblttng-ust.so to liblttng-ust-tracepoint.so, even this late > >> in the -rc cycle, because all users of tracelog/tracef need to link > >> against liblttng-ust-tracepoint.so anyway. So moving these symbols > >> should not affect anyone. > >> > >> Can you give it a try and let me know if it works for you ? > > > > Will take some time, whats the timeframe you need for feedback? > > Here is the tentative commit: > > https://review.lttng.org/c/lttng-ust/+/5927 Move tracef/tracelog symbols to > liblttng-ust-tracepoint.so
Well... this is certainly an improvement. I am not completely happy though: "... users now link against liblttng-ust-tracepoint.so explicitly" My homecooked solution currently works like this: *) define the probes from <lttng/lttng-ust-tracelog.h> with TRACEPOINT_PROBE_DYNAMIC_LINKAGE, link them in the application, together with other dynamic probes *) build a separate library with *other* tracepoints, lets call it libtracepoint.so *) don't link the application to any lttng library. Which means: 1) the application works without lttng libraries. tracepoints are no-ops 2) if available then liblttng-ust-tracepoint.so is loaded (constructor function from your headers). tracepoints are no-ops 3) if the application dlopen's libtracepoint.so and in turn liblttng-ust.so then tracepoints work. I'd lose option 1 compared to reimplementing tracelog using homecooked lttng-ust-tracelog tracepoints. So, are there any issues using <lttng/lttng-ust-tracelog.h> that way, it seems to work fine, are there mutliple competing instances now? (I am not re-using any bit from tracelog.h, I am just after using the tracepoint definition). I mean I could dlsym all the functions, but tracelog has 1 per loglevel and really ugly long names ;) Norbert _______________________________________________ lttng-dev mailing list lttng-dev@lists.lttng.org https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev