Add -ust to the name of UST threads of the application
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH v4 1/1 Add -ust to the name of UST threads of the application
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.
--- configure.ac | 5 ++++ liblttng-ust/Makefile.am | 1 + liblttng-ust/compat.h | 67 ++++++++++++++++++++++++++++++++++++++++++- liblttng-ust/lttng-ust-comm.c | 9 ++++++ 4 files changed, 81 insertions(+), 1 deletion(-)
configure.ac +5 -0
@@ -135,6 +135,11 @@ AM_CONDITIONAL([LTTNG_UST_BUILD_WITH_LIBDL], [test "x$have_libdl" = "xyes"]) AM_CONDITIONAL([LTTNG_UST_BUILD_WITH_LIBC_DL], [test "x$have_libc_dl" = "xyes"]) AC_CHECK_LIB([pthread], [pthread_create]) +AC_CHECK_LIB([pthread], [pthread_setname_np], + AC_DEFINE([HAVE_PTHREAD_SETNAME_NP], [1], [Define to 1 if pthread_setname_np is available.]), + AC_CHECK_LIB([pthread], [pthread_set_name_np], + AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP], [1], [Define to 1 if pthread_set_name_np is available.]), + AC_MSG_RESULT([pthread setname/set_name not found.]))) # Check for dlfcn.h AC_CHECK_HEADER([dlfcn.h])
liblttng-ust/Makefile.am +1 -0
@@ -14,6 +14,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
liblttng-ust/compat.h +66 -1
91 lines not on this page · raw message
liblttng-ust/lttng-ust-comm.c +9 -0
@@ -1295,6 +1295,15 @@ void *ust_listener_thread(void *arg)int sock, ret, prev_connect_failed =0 , has_waited =0 ;long timeout; +/* +* If available, add '-ust' to the end of this thread's +* process name +*/ + ret =lttng_ust_setustprocname (); +if (ret) { +ERR ("Unable to set UST process name" ); + } +/* Restart trying to connect to the session daemon */ restart:if (prev_connect_failed) {
Signature · 6 lines
2.8.1 _______________________________________________ lttng-dev mailing list [email protected] https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
A message that is not in the archive (sent off-list or not yet received): 2f60eb1746f5f9806494598e421e9e835bf28a63.1465163994.git.raphael.beamonte@gmail.com
Quoted 58 lines · ----- On Jun 5, 2016, at 6:00 PM, Raphaël Beamonte [email protected]…
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 <[email protected]>---
configure.ac | 5 ++++ liblttng-ust/Makefile.am | 1 + liblttng-ust/compat.h | 67 ++++++++++++++++++++++++++++++++++++++++++- liblttng-ust/lttng-ust-comm.c | 9 ++++++ 4 files changed, 81 insertions(+), 1 deletion(-)configure.ac +5
-0@@ -135,6 +135,11 @@ AM_CONDITIONAL([LTTNG_UST_BUILD_WITH_LIBDL], [test "x$have_libdl" = "xyes"]) AM_CONDITIONAL([LTTNG_UST_BUILD_WITH_LIBC_DL], [test "x$have_libc_dl" = "xyes"]) AC_CHECK_LIB([pthread], [pthread_create]) +AC_CHECK_LIB([pthread], [pthread_setname_np], + AC_DEFINE([HAVE_PTHREAD_SETNAME_NP], [1], [Define to 1 if pthread_setname_np is available.]), + AC_CHECK_LIB([pthread], [pthread_set_name_np], + AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP], [1], [Define to 1 if pthread_set_name_np is available.]), + AC_MSG_RESULT([pthread setname/set_name not found.])))# Check for
dlfcn.hAC_CHECK_HEADER([dlfcn.h])liblttng-ust/Makefile.am +1
-0@@ -14,6 +14,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"liblttng-ust/Makefile.am +0
-1-fno-strict-aliasingliblttng-ust/compat.h +1
-0@@ -3,6 +3,7 @@/* * Copyright (C) 2011 Mathieu Desnoyers <[email protected]> +* Copyright (C) 2016 Raphaël Beamonte <[email protected]> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public
liblttng-ust/compat.h line 26
Quoted 4 lines
liblttng-ust/compat.h +0
-1@@ -23,7 +24,6 @@* lttng_ust_getprocname. */ #ifdef __linux__ -
Why remove this newline ?
liblttng-ust/compat.h void lttng_ust_getprocname(char *name) · line 38
Quoted 9 lines
liblttng-ust/compat.h +2
-0#include <sys/prctl.h> #define LTTNG_UST_PROCNAME_LEN 17@@ -34,6 +34,17 @@ void lttng_ust_getprocname(char *name) (void )prctl (PR_GET_NAME , (unsigned long ) name,0 ,0 ,0 ); } +/* +* if pthread_setname_np is available.
Comments should be complete sentences, starting with a capital letter, ending with a dot.
I'll fix those on my end.
Thanks,
Mathieu
Quoted 95 lines
liblttng-ust/compat.h +63
-0+*/ +#ifdef HAVE_PTHREAD_SETNAME_NP +static inline +int lttng_pthread_setname_np (pthread_t thread,const char *name) +{ +return pthread_setname_np (thread, name); +} +#endif +#elif defined(__FreeBSD__)#include <stdlib.h> #include <string.h> @@ -59,6 +70,60 @@ void lttng_ust_getprocname(char *name) strncpy(name, bsd_name, LTTNG_UST_PROCNAME_LEN - 1); } +/* +* if pthread_set_name_np is available. +*/ +#ifdef HAVE_PTHREAD_SET_NAME_NP +static inline +int lttng_pthread_setname_np (pthread_t thread,const char *name) +{ +return pthread_set_name_np (thread, name); +} +#endif + +#endif + +/* +* If a pthread setname/set_name function is available, declare +* the setustprocname() function that will add '-ust' to the end +* of the current process name, while truncating it if needed. +*/ +#if defined(HAVE_PTHREAD_SETNAME_NP ) || defined(HAVE_PTHREAD_SETNAME_NP ) +#define LTTNG_UST_PROCNAME_SUFFIX "-ust" + +#include <pthread.h> + +static inline +int lttng_ust_setustprocname (void ) +{ +int ret =0 ; +char name[LTTNG_UST_PROCNAME_LEN ]; +int limit =LTTNG_UST_PROCNAME_LEN -strlen (LTTNG_UST_PROCNAME_SUFFIX ); +int len; + +lttng_ust_getprocname (name); + + len =strlen (name); +if (len > limit) { + len = limit; + } + + ret =sprintf (name + len,LTTNG_UST_PROCNAME_SUFFIX ); +if (ret) { + goto error; + } + + ret =lttng_pthread_setname_np (pthread_self (), name); + +error: +return ret; +} +#else +static inline +int lttng_ust_setustprocname (void ) +{ +return 0 ; +}#endif #include <errno.h> liblttng-ust/lttng-ust-comm.c +9
-0@@ -1295,6 +1295,15 @@ void *ust_listener_thread(void *arg)int sock, ret, prev_connect_failed =0 , has_waited =0 ;long timeout; +/* +* If available, add '-ust' to the end of this thread's +* process name +*/ + ret =lttng_ust_setustprocname (); +if (ret) { +ERR ("Unable to set UST process name" ); + } +/* Restart trying to connect to the session daemon */ restart:
if (prev_connect_failed) {--
2.8.1
Signature · 7 lines
Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com _______________________________________________ lttng-dev mailing list [email protected] https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 2 lines · Mathieu Desnoyers
----- On Jun 5, 2016, at 6:00 PM, Raphaël Beamonte
Quoted 10 lines · [email protected] wrote:
Quoted 10 lines
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 <[email protected]>---
configure.ac | 5 ++++ liblttng-ust/Makefile.am | 1 + liblttng-ust/compat.h | 67
++++++++++++++++++++++++++++++++++++++++++-
Quoted 10 lines
Quoted 10 lines
liblttng-ust/lttng-ust-comm.c| 9 ++++++4 files changed, 81 insertions(+), 1 deletion(-)configure.ac +0
-0@@ -135,6 +135,11 @@ AM_CONDITIONAL([LTTNG_UST_BUILD_WITH_LIBDL], [test "x$have_libdl" = "xyes"])AM_CONDITIONAL([LTTNG_UST_BUILD_WITH_LIBC_DL], [test "x$have_libc_dl" =
"xyes"])
Quoted 4 lines
configure.ac
Quoted 4 lines
AC_CHECK_LIB([pthread], [pthread_create])configure.ac +2
-0+AC_CHECK_LIB([pthread], [pthread_setname_np], + AC_DEFINE([HAVE_PTHREAD_SETNAME_NP], [1], [Define to 1 if
pthread_setname_np
Quoted 6 lines
Quoted 6 lines
is available.]),
configure.ac +2
-0+ AC_CHECK_LIB([pthread], [pthread_set_name_np], + AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP], [1], [Define to 1 if
pthread_set_name_npis available.]),
+AC_MSG_RESULT([pthread setname/set_name not found.])))
Quoted 15 lines
Quoted 12 lines
# Check for
dlfcn.hAC_CHECK_HEADER([dlfcn.h])liblttng-ust/Makefile.am +1
-0@@ -14,6 +14,7 @@ liblttng_ust_tracepoint_la_SOURCES = \ error.h liblttng_ust_tracepoint_la_LIBADD = \ -lurcu-bp \ + -lpthread \ $(top_builddir)/snprintf/libustsnprintf.laQuoted 3 lines
liblttng_ust_tracepoint_la_LDFLAGS= -no-undefined -version-info $(LTTNG_UST_LIBRARY_VERSION)liblttng_ust_tracepoint_la_CFLAGS=
-DUST_COMPONENT="liblttng_ust_tracepoint"
Quoted 7 lines
Quoted 7 lines
liblttng-ust/Makefile.am +0
-1-fno-strict-aliasingliblttng-ust/compat.h +0
-0@@ -3,6 +3,7 @@
Quoted 13 lines
liblttng-ust/compat.h line 26
Quoted 11 lines
liblttng-ust/compat.h +1
-1/* * Copyright (C) 2011 Mathieu Desnoyers <[email protected]> +* Copyright (C) 2016 Raphaël Beamonte <[email protected]> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -23,7 +24,6 @@* lttng_ust_getprocname. */ #ifdef __linux__ -Why remove this newline ?
Mistake that comes from the first version of the patch (I was including pthread there). I must have replicated the spacing of the FreeBSD elif when updating the patch and didn't see that mistake!
Quoted 8 lines
Quoted 8 lines
liblttng-ust/compat.h +0
-0#include <sys/prctl.h> #define LTTNG_UST_PROCNAME_LEN 17@@ -34,6 +34,17 @@ void lttng_ust_getprocname(char *name) (void )prctl (PR_GET_NAME , (unsigned long ) name,0 ,0 ,0 ); }
Quoted 7 lines
liblttng-ust/compat.h void lttng_ust_getprocname(char *name) · line 38
Quoted 2 lines
liblttng-ust/compat.h +2
-0+/* +* if pthread_setname_np is available. Comments should be complete sentences, starting with a capital letter, ending with a dot.
I'll fix those on my end.
Ok, thanks!
I'll remember that for next time!
Raphaël
Quoted 32 lines
Thanks,
Mathieu
Quoted 27 lines
liblttng-ust/compat.h +20
-0+*/ +#ifdef HAVE_PTHREAD_SETNAME_NP +static inline +int lttng_pthread_setname_np (pthread_t thread,const char *name) +{ +return pthread_setname_np (thread, name); +} +#endif +#elif defined(__FreeBSD__)#include <stdlib.h> #include <string.h> @@ -59,6 +70,60 @@ void lttng_ust_getprocname(char *name)strncpy (name, bsd_name,LTTNG_UST_PROCNAME_LEN -1 ); } +/* +* if pthread_set_name_np is available. +*/ +#ifdef HAVE_PTHREAD_SET_NAME_NP +static inline +int lttng_pthread_setname_np (pthread_t thread,const char *name) +{ +return pthread_set_name_np (thread, name); +} +#endif +
Quoted 8 lines
liblttng-ust/compat.h void lttng_ust_getprocname(char *name) · line 91
Quoted 8 lines
liblttng-ust/compat.h +8
-0+#endif + +/* +* If a pthread setname/set_name function is available, declare +* the setustprocname() function that will add '-ust' to the end +* of the current process name, while truncating it if needed. +*/ +#if defined(HAVE_PTHREAD_SETNAME_NP) ||
defined(HAVE_PTHREAD_SETNAME_NP)
Quoted 10 lines
liblttng-ust/compat.h void lttng_ust_getprocname(char *name) · line 101
Quoted 10 lines
liblttng-ust/compat.h +10
-0+#define LTTNG_UST_PROCNAME_SUFFIX "-ust" + +#include <pthread.h> + +static inline +int lttng_ust_setustprocname (void ) +{ +int ret =0 ; +char name[LTTNG_UST_PROCNAME_LEN ]; + int limit = LTTNG_UST_PROCNAME_LEN -
strlen(LTTNG_UST_PROCNAME_SUFFIX);
Quoted 27 lines
Quoted 27 lines
liblttng-ust/compat.h +25
-0+int len; + +lttng_ust_getprocname (name); + + len =strlen (name); +if (len > limit) { + len = limit; + } + + ret =sprintf (name + len,LTTNG_UST_PROCNAME_SUFFIX ); +if (ret) { + goto error; + } + + ret =lttng_pthread_setname_np (pthread_self (), name); + +error: + return ret; +} +#else +static inline +int lttng_ust_setustprocname (void ) +{ +return 0 ; +}#endif
Quoted 2 lines
Review
Quoted 2 lines
liblttng-ust/compat.h +0
-0#include <errno.h> (quoted diff) +0
-0
b/liblttng-ust/lttng-ust-comm.c
Quoted 18 lines
Quoted 18 lines
index e00a22c..6105403 100644
liblttng-ust/lttng-ust-comm.c +9
-0@@ -1295,6 +1295,15 @@ void *ust_listener_thread(void *arg)int sock, ret, prev_connect_failed =0 , has_waited =0 ;long timeout; +/* +* If available, add '-ust' to the end of this thread's +* process name +*/ + ret =lttng_ust_setustprocname (); +if (ret) { +ERR ("Unable to set UST process name" ); + } +/* Restart trying to connect to the session daemon */ restart:
Quoted 8 lines
Quoted 3 lines
if (prev_connect_failed) {--
2.8.1--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
_______________________________________________
lttng-dev mailing list
[email protected]
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
A message that is not in the archive (sent off-list or not yet received): CAE_Gge1pLSncZZhGNxEQ11RutcT_fK_Q-odmJHWzCLgtjV5J8g@mail.gmail.com
merged with small modifications,
Thanks!
Mathieu
Quoted 201 lines · Raphaël Beamonte
Quoted 54 lines · Mathieu Desnoyers
----- On Jun 5, 2016, at 6:00 PM, Raphaël Beamonte [email protected]
Quoted 50 lines · wrote:
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 < [email protected] >---
configure.ac | 5 ++++
liblttng-ust/Makefile.am | 1 +liblttng-ust/compat.h| 67 ++++++++++++++++++++++++++++++++++++++++++-liblttng-ust/lttng-ust-comm.c| 9 ++++++4 files changed, 81 insertions(+), 1 deletion(-)configure.ac +5
-0@@ -135,6 +135,11 @@ AM_CONDITIONAL([LTTNG_UST_BUILD_WITH_LIBDL], [test "x$have_libdl" = "xyes"]) AM_CONDITIONAL([LTTNG_UST_BUILD_WITH_LIBC_DL], [test "x$have_libc_dl" = "xyes"]) AC_CHECK_LIB([pthread], [pthread_create]) +AC_CHECK_LIB([pthread], [pthread_setname_np], + AC_DEFINE([HAVE_PTHREAD_SETNAME_NP], [1], [Define to 1 if pthread_setname_np is available.]), + AC_CHECK_LIB([pthread], [pthread_set_name_np], + AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP], [1], [Define to 1 if pthread_set_name_np is available.]), + AC_MSG_RESULT([pthread setname/set_name not found.])))# Check for
dlfcn.hAC_CHECK_HEADER([dlfcn.h])liblttng-ust/Makefile.am +0
-0@@ -14,6 +14,7 @@ liblttng_ust_tracepoint_la_SOURCES = \
error.hliblttng_ust_tracepoint_la_LIBADD= \
-lurcu-bp \
+ -lpthread \
$(top_builddir)/snprintf/ libustsnprintf.laliblttng_ust_tracepoint_la_LDFLAGS= -no-undefined -version-info $(LTTNG_UST_LIBRARY_VERSION)liblttng_ust_tracepoint_la_CFLAGS= -DUST_COMPONENT="liblttng_ust_tracepoint"liblttng-ust/Makefile.am +0
-1-fno-strict-aliasingliblttng-ust/compat.h +0
-0@@ -3,6 +3,7 @@Quoted 13 lines
liblttng-ust/compat.h line 26
Quoted 11 lines
liblttng-ust/compat.h +1
-1/* * Copyright (C) 2011 Mathieu Desnoyers < [email protected] > +* Copyright (C) 2016 Raphaël Beamonte < [email protected] > * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -23,7 +24,6 @@* lttng_ust_getprocname. */ #ifdef __linux__ -Why remove this newline ?
Mistake that comes from the first version of the patch (I was including pthread there). I must have replicated the spacing of the FreeBSD elif when updating the patch and didn't see that mistake!
Quoted 7 lines
Quoted 6 lines
liblttng-ust/compat.h +0
-0#include <sys/prctl.h> #define LTTNG_UST_PROCNAME_LEN 17@@ -34,6 +34,17 @@ void lttng_ust_getprocname(char *name) (void )prctl (PR_GET_NAME , (unsigned long ) name,0 ,0 ,0 ); }Quoted 7 lines
liblttng-ust/compat.h void lttng_ust_getprocname(char *name) · line 37
Quoted 2 lines
liblttng-ust/compat.h +2
-0+/* +* if pthread_setname_np is available. Comments should be complete sentences, starting with a capital letter, ending with a dot.
I'll fix those on my end.
Ok, thanks!
I'll remember that for next time!Raphaël
Quoted 104 lines
Thanks,
Mathieu
Quoted 91 lines
liblttng-ust/compat.h +63
-0+*/ +#ifdef HAVE_PTHREAD_SETNAME_NP +static inline +int lttng_pthread_setname_np (pthread_t thread,const char *name) +{ +return pthread_setname_np (thread, name); +} +#endif +#elif defined(__FreeBSD__)#include <stdlib.h> #include <string.h> @@ -59,6 +70,60 @@ void lttng_ust_getprocname(char *name) strncpy(name, bsd_name, LTTNG_UST_PROCNAME_LEN - 1); } +/* +* if pthread_set_name_np is available. +*/ +#ifdef HAVE_PTHREAD_SET_NAME_NP +static inline +int lttng_pthread_setname_np (pthread_t thread,const char *name) +{ +return pthread_set_name_np (thread, name); +} +#endif + +#endif + +/* +* If a pthread setname/set_name function is available, declare +* the setustprocname() function that will add '-ust' to the end +* of the current process name, while truncating it if needed. +*/ +#if defined(HAVE_PTHREAD_SETNAME_NP ) || defined(HAVE_PTHREAD_SETNAME_NP ) +#define LTTNG_UST_PROCNAME_SUFFIX "-ust" + +#include <pthread.h> + +static inline +int lttng_ust_setustprocname (void ) +{ +int ret =0 ; +char name[LTTNG_UST_PROCNAME_LEN ]; +int limit =LTTNG_UST_PROCNAME_LEN -strlen (LTTNG_UST_PROCNAME_SUFFIX ); +int len; + +lttng_ust_getprocname (name); + + len =strlen (name); +if (len > limit) { + len = limit; + } + + ret =sprintf (name + len,LTTNG_UST_PROCNAME_SUFFIX ); +if (ret) { + goto error; + } + + ret =lttng_pthread_setname_np (pthread_self (), name); + +error: +return ret; +} +#else +static inline +int lttng_ust_setustprocname (void ) +{ +return 0 ; +}#endif #include <errno.h> liblttng-ust/lttng-ust-comm.c +9
-0@@ -1295,6 +1295,15 @@ void *ust_listener_thread(void *arg)int sock, ret, prev_connect_failed =0 , has_waited =0 ;long timeout; +/* +* If available, add '-ust' to the end of this thread's +* process name +*/ + ret =lttng_ust_setustprocname (); +if (ret) { +ERR ("Unable to set UST process name" ); + } +/* Restart trying to connect to the session daemon */ Quoted 4 lines
restart:
if (prev_connect_failed) {
--
2.8.1--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
Signature · 3 lines
Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com
_______________________________________________
lttng-dev mailing list
[email protected]
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev