[lttng-dev] [lttng-tools PATCH v4 2/2] Use the consumerd_bin variables for kernel consumers too

Mathieu Desnoyers compudj at krystal.dyndns.org
Mon Dec 5 17:31:34 EST 2011


* Alexandre Montplaisir (alexandre.montplaisir at gmail.com) wrote:
> Right now the sessiond will only look in its own directory for
> the consumerd when starting a kernel trace. This patch makes it
> check for consumerd32_bin and consumerd64_bin too.
> 
> Signed-off-by: Alexandre Montplaisir <alexandre.montplaisir at gmail.com>

Merged, thanks!

Mathieu

> ---
>  lttng-sessiond/main.c |   29 ++++++++++++++++++++++++-----
>  1 files changed, 24 insertions(+), 5 deletions(-)
> 
> diff --git a/lttng-sessiond/main.c b/lttng-sessiond/main.c
> index 723d2a8..842ec5b 100644
> --- a/lttng-sessiond/main.c
> +++ b/lttng-sessiond/main.c
> @@ -1508,7 +1508,9 @@ static pid_t spawn_consumerd(struct consumer_data *consumer_data)
>  {
>  	int ret;
>  	pid_t pid;
> +	const char *consumer_to_use;
>  	const char *verbosity;
> +	struct stat st;
>  
>  	DBG("Spawning consumerd");
>  
> @@ -1524,11 +1526,26 @@ static pid_t spawn_consumerd(struct consumer_data *consumer_data)
>  		}
>  		switch (consumer_data->type) {
>  		case LTTNG_CONSUMER_KERNEL:
> -			execl(INSTALL_BIN_PATH "/" CONSUMERD_FILE,
> -					"lttng-consumerd", verbosity, "-k",
> -					"--consumerd-cmd-sock", consumer_data->cmd_unix_sock_path,
> -					"--consumerd-err-sock", consumer_data->err_unix_sock_path,
> -					NULL);
> +			/*
> +			 * Find out which consumerd to execute. We will first
> +			 * try the 64-bit path, then the 32-bit one, then
> +			 * fallback on sessiond's installation directory.
> +			 */
> +			if (stat(consumerd64_bin, &st) == 0) {
> +				consumer_to_use = consumerd64_bin;
> +			} else if (stat(consumerd32_bin, &st) == 0) {
> +				consumer_to_use = consumerd32_bin;
> +			} else if (stat(INSTALL_BIN_PATH "/" CONSUMERD_FILE, &st) == 0) {
> +				consumer_to_use = INSTALL_BIN_PATH "/" CONSUMERD_FILE;
> +			} else {
> +				break;
> +			}
> +			DBG("Using kernel consumer at: %s",  consumer_to_use);
> +			execl(consumer_to_use,
> +				"lttng-consumerd", verbosity, "-k",
> +				"--consumerd-cmd-sock", consumer_data->cmd_unix_sock_path,
> +				"--consumerd-err-sock", consumer_data->err_unix_sock_path,
> +				NULL);
>  			break;
>  		case LTTNG_CONSUMER64_UST:
>  		{
> @@ -1561,6 +1578,7 @@ static pid_t spawn_consumerd(struct consumer_data *consumer_data)
>  					goto error;
>  				}
>  			}
> +			DBG("Using 64-bit UST consumer at: %s",  consumerd64_bin);
>  			ret = execl(consumerd64_bin, verbosity, "-u",
>  					"--consumerd-cmd-sock", consumer_data->cmd_unix_sock_path,
>  					"--consumerd-err-sock", consumer_data->err_unix_sock_path,
> @@ -1604,6 +1622,7 @@ static pid_t spawn_consumerd(struct consumer_data *consumer_data)
>  					goto error;
>  				}
>  			}
> +			DBG("Using 32-bit UST consumer at: %s",  consumerd32_bin);
>  			ret = execl(consumerd32_bin, verbosity, "-u",
>  					"--consumerd-cmd-sock", consumer_data->cmd_unix_sock_path,
>  					"--consumerd-err-sock", consumer_data->err_unix_sock_path,
> -- 
> 1.7.7.3
> 
> 
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
> 

-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com



More information about the lttng-dev mailing list