All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Raphaël Beamonte" <raphael.beamonte@gmail.com>
To: lttng-dev@lists.lttng.org, mathieu.desnoyers@efficios.com
Cc: "Raphaël Beamonte" <raphael.beamonte@gmail.com>
Subject: [lttng-ust PATCH v3 1/1] Add -ust to the name of UST threads of the application
Date: Fri,  3 Jun 2016 12:45:02 -0400	[thread overview]
Message-ID: <1d3230f091658e56c8ccf12279c3afd89b4062c7.1464971957.git.raphael.beamonte__36696.7958435$1464972903$gmane$org@gmail.com> (raw)
In-Reply-To: <cover.1464971957.git.raphael.beamonte@gmail.com>
In-Reply-To: <cover.1464971957.git.raphael.beamonte@gmail.com>

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@gmail.com>
---
 configure.ac                  |  5 +++++
 liblttng-ust/Makefile.am      |  1 +
 liblttng-ust/compat.h         | 51 ++++++++++++++++++++++++++++++++++++++++++-
 liblttng-ust/lttng-ust-comm.c |  6 +++++
 4 files changed, 62 insertions(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 5692553..de462ff 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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])
diff --git a/liblttng-ust/Makefile.am b/liblttng-ust/Makefile.am
index f1801cf..05929be 100644
--- a/liblttng-ust/Makefile.am
+++ b/liblttng-ust/Makefile.am
@@ -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
diff --git a/liblttng-ust/compat.h b/liblttng-ust/compat.h
index 43b2223..68d4d50 100644
--- a/liblttng-ust/compat.h
+++ b/liblttng-ust/compat.h
@@ -3,6 +3,7 @@
 
 /*
  * Copyright (C) 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+ * Copyright (C) 2016 Raphaël Beamonte <raphael.beamonte@gmail.com>
  *
  * 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__
-
 #include <sys/prctl.h>
 
 #define LTTNG_UST_PROCNAME_LEN 17
@@ -34,6 +34,13 @@ void lttng_ust_getprocname(char *name)
 	(void) prctl(PR_GET_NAME, (unsigned long) name, 0, 0, 0);
 }
 
+/*
+ * if pthread_setname_np is available.
+ */
+#ifdef HAVE_PTHREAD_SETNAME_NP
+#define PTHREAD_SETNAME_NP pthread_setname_np
+#endif
+
 #elif defined(__FreeBSD__)
 #include <stdlib.h>
 #include <string.h>
@@ -59,6 +66,48 @@ 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
+#define PTHREAD_SETNAME_NP pthread_set_name_np
+#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.
+ */
+#ifdef PTHREAD_SETNAME_NP
+#define LTTNG_UST_PROCNAME_SUFFIX "-ust"
+
+#include <pthread.h>
+
+static inline
+void lttng_ust_setustprocname(void)
+{
+	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;
+	}
+
+	sprintf(name + len, LTTNG_UST_PROCNAME_SUFFIX);
+
+	PTHREAD_SETNAME_NP(pthread_self(), name);
+}
+#else
+static inline
+void lttng_ust_setustprocname(void)
+{
+}
 #endif
 
 #include <errno.h>
diff --git a/liblttng-ust/lttng-ust-comm.c b/liblttng-ust/lttng-ust-comm.c
index e00a22c..c32e8ae 100644
--- a/liblttng-ust/lttng-ust-comm.c
+++ b/liblttng-ust/lttng-ust-comm.c
@@ -1295,6 +1295,12 @@ 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
+	 */
+	lttng_ust_setustprocname();
+
 	/* Restart trying to connect to the session daemon */
 restart:
 	if (prev_connect_failed) {
-- 
2.8.1

_______________________________________________
lttng-dev mailing list
lttng-dev@lists.lttng.org
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

  parent reply	other threads:[~2016-06-03 16:45 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1464966729.git.raphael.beamonte@gmail.com>
     [not found] ` <80ee3399800d43b5d3f51aa095ebca160d4f20b9.1464966729.git.raphael.beamonte@gmail.com>
2016-06-03 15:47   ` [lttng-ust RFC PATCH v2 1/1] Add -ust to the name of UST threads of the application Sebastien Boisvert
     [not found]   ` <5751A690.9000501@gydle.com>
2016-06-03 15:54     ` Mathieu Desnoyers
     [not found]     ` <1992157209.27136.1464969273436.JavaMail.zimbra@efficios.com>
2016-06-03 15:55       ` Mathieu Desnoyers
     [not found]       ` <1936873452.27140.1464969327630.JavaMail.zimbra@efficios.com>
2016-06-03 16:12         ` Raphaël Beamonte
     [not found]         ` <CAE_Gge2Av=iucY8abMCHpU8PjgptdCLhvyoWk7nwfazt6ei3VQ@mail.gmail.com>
2016-06-03 16:19           ` Mathieu Desnoyers
2016-06-03 16:24           ` Sebastien Boisvert
     [not found]           ` <5751AF3F.4000405@gydle.com>
2016-06-03 16:31             ` Mathieu Desnoyers
     [not found] ` <cover.1461269886.git.raphael.beamonte@gmail.com>
2016-04-21 20:50   ` [RFC PATCH 1/2] " Raphaël Beamonte
2016-04-21 20:50   ` [RFC PATCH 2/2] " Raphaël Beamonte
2016-06-01 15:04   ` [RFC PATCH 0/2] Identify UST threads by changing thread names Raphaël Beamonte
     [not found]   ` <CAE_Gge2jacOMKQaPdp_dXf3NP+yJTS+jWgJQ-SUnv1-B6WgcGw@mail.gmail.com>
2016-06-03  6:10     ` Jérémie Galarneau
     [not found]     ` <CA+jJMxvmHRYYtHWYjumXrS1BrBCih3WJnRA5yGFBXTw7jL3HiA@mail.gmail.com>
2016-06-03  6:11       ` Jérémie Galarneau
     [not found]       ` <CA+jJMxs9yNOeeqtYBfGTz1ADOqqiVO=XZd-7qm48BS8dzVo-iw@mail.gmail.com>
2016-06-03  6:18         ` Mathieu Desnoyers
     [not found]         ` <1192105907.26502.1464934699922.JavaMail.zimbra@efficios.com>
2016-06-03  6:24           ` Mathieu Desnoyers
     [not found]           ` <293416701.26545.1464935065348.JavaMail.zimbra@efficios.com>
2016-06-03 14:12             ` Raphaël Beamonte
     [not found]             ` <CAE_Gge2032JkDubp=vpaqNzoQre7MfvQC4UGm-wXPmux-Fwh6g@mail.gmail.com>
2016-06-03 15:38               ` Mathieu Desnoyers
2016-06-03 15:16   ` [lttng-ust RFC PATCH v2 0/1] " Raphaël Beamonte
2016-06-03 15:17   ` [lttng-ust RFC PATCH v2 1/1] Add -ust to the name of UST threads of the application Raphaël Beamonte
2016-06-03 16:45   ` [lttng-ust PATCH v3 0/1] Identify UST threads by changing thread names Raphaël Beamonte
2016-06-03 16:45   ` Raphaël Beamonte [this message]
     [not found] <cover.1464971957.git.raphael.beamonte@gmail.com>
     [not found] ` <1d3230f091658e56c8ccf12279c3afd89b4062c7.1464971957.git.raphael.beamonte@gmail.com>
2016-06-03 16:51   ` [lttng-ust PATCH v3 1/1] Add -ust to the name of UST threads of the application Sebastien Boisvert
2016-06-05 19:19   ` Mathieu Desnoyers

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='1d3230f091658e56c8ccf12279c3afd89b4062c7.1464971957.git.raphael.beamonte__36696.7958435$1464972903$gmane$org@gmail.com' \
    --to=raphael.beamonte@gmail.com \
    --cc=lttng-dev@lists.lttng.org \
    --cc=mathieu.desnoyers@efficios.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.