diff mbox

[RFC,2/2] Add -ust to the name of UST threads of the application

Message ID 57502F60.10709@gydle.com
State RFC, archived
Headers show

Commit Message

Sebastien Boisvert June 2, 2016, 1:06 p.m. UTC
> 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

Comments

Raphaël Beamonte June 3, 2016, 2:14 p.m. UTC | #1
2016-06-02 9:06 GMT-04:00 Sebastien Boisvert <sboisvert at gydle.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 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
>

Hi Sebastien,

Right. Should have used a define! Will do.

Raphaël
diff mbox

Patch

--- 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