[lttng-dev] [RFC PATCH 2/2] Add -ust to the name of UST threads of the application
Sebastien Boisvert
sboisvert at gydle.com
Thu Jun 2 13:06:40 UTC 2016
> Add the required functions to change the thread name of the UST
> threads and add the -ust string at its end. This will help to
> identify LTTng-UST processes when analyzing the trace of a process.
>
> Signed-off-by: Raphaël Beamonte <raphael.beamonte at gmail.com <https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev>>
> ---
> liblttng-ust/Makefile.am | 1 +
> liblttng-ust/compat.h | 35 +++++++++++++++++++++++++++++++++++
> liblttng-ust/lttng-ust-comm.c | 2 ++
> 3 files changed, 38 insertions(+)
>
> diff --git a/liblttng-ust/Makefile.am b/liblttng-ust/Makefile.am
> index 876e9b5..8d78d63 100644
> --- a/liblttng-ust/Makefile.am
> +++ b/liblttng-ust/Makefile.am
> @@ -13,6 +13,7 @@ liblttng_ust_tracepoint_la_SOURCES = \
> error.h
> liblttng_ust_tracepoint_la_LIBADD = \
> -lurcu-bp \
> + -lpthread \
> $(top_builddir)/snprintf/libustsnprintf.la
> liblttng_ust_tracepoint_la_LDFLAGS = -no-undefined -version-info $(LTTNG_UST_LIBRARY_VERSION)
> liblttng_ust_tracepoint_la_CFLAGS = -DUST_COMPONENT="liblttng_ust_tracepoint" -fno-strict-aliasing
> diff --git a/liblttng-ust/compat.h b/liblttng-ust/compat.h
> index 43b2223..161b957 100644
> --- a/liblttng-ust/compat.h
> +++ b/liblttng-ust/compat.h
> @@ -24,6 +24,7 @@
> */
> #ifdef __linux__
>
> +#include <pthread.h>
> #include <sys/prctl.h>
>
> #define LTTNG_UST_PROCNAME_LEN 17
> @@ -34,6 +35,23 @@ void lttng_ust_getprocname(char *name)
> (void) prctl(PR_GET_NAME, (unsigned long) name, 0, 0, 0);
> }
>
> +static inline
> +void lttng_ust_setustprocname()
> +{
> + char name[LTTNG_UST_PROCNAME_LEN];
> + int limit = LTTNG_UST_PROCNAME_LEN - 4;
> +
> + lttng_ust_getprocname(name);
> +
> + if (strlen(name) >= limit) {
> + name[limit] = 0;
> + }
> +
> + sprintf(name, "%s%s", name, "-ust");
> +
> + pthread_setname_np(pthread_self(), name);
> +}
> +
> #elif defined(__FreeBSD__)
> #include <stdlib.h>
> #include <string.h>
> @@ -59,6 +77,23 @@ void lttng_ust_getprocname(char *name)
> strncpy(name, bsd_name, LTTNG_UST_PROCNAME_LEN - 1);
> }
>
> +static inline
> +void lttng_ust_setustprocname()
> +{
> + char name[LTTNG_UST_PROCNAME_LEN];
> + int limit = LTTNG_UST_PROCNAME_LEN - 4;
> +
> + lttng_ust_getprocname(name);
> +
> + if (strlen(name) >= limit) {
> + name[limit] = 0;
> + }
> +
> + sprintf(name, "%s%s", name, "-ust");
> +
> + pthread_set_name_np(pthread_self(), name);
> +}
> +
> #endif
>
> #include <errno.h>
> diff --git a/liblttng-ust/lttng-ust-comm.c b/liblttng-ust/lttng-ust-comm.c
> index e00a22c..a85cb21 100644
> --- a/liblttng-ust/lttng-ust-comm.c
> +++ b/liblttng-ust/lttng-ust-comm.c
> @@ -1295,6 +1295,8 @@ void *ust_listener_thread(void *arg)
> int sock, ret, prev_connect_failed = 0, has_waited = 0;
> long timeout;
>
> + lttng_ust_setustprocname();
> +
> /* Restart trying to connect to the session daemon */
> restart:
> if (prev_connect_failed) {
> --
> 2.1.4
>
Hi Raphaël,
Since the only difference between the Linux hunk and the FreeBSD hunk is *one* line, you
should simplify this patch.
Z1$ diff -u linux-hunk freebsd-hunk
--- linux-hunk 2016-06-02 09:02:14.790865459 -0400
+++ freebsd-hunk 2016-06-02 09:02:38.863865110 -0400
@@ -12,6 +12,6 @@
+
+ sprintf(name, "%s%s", name, "-ust");
+
-+ pthread_setname_np(pthread_self(), name);
++ pthread_set_name_np(pthread_self(), name);
+}
+
\ No newline at end of file
More information about the lttng-dev
mailing list