X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fmain.c;h=9b2d1fe0079c91753877dec1ca724466187ac9f3;hb=727d5404ea9a553a2ba569b00c4cd2fa69139bce;hp=e1d50974bfc2f3c220fd7cf219e6145b005f5ae4;hpb=096102bd1f0665d96f75ad12410ea23189fbf861;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/main.c b/src/bin/lttng-sessiond/main.c index e1d50974b..9b2d1fe00 100644 --- a/src/bin/lttng-sessiond/main.c +++ b/src/bin/lttng-sessiond/main.c @@ -77,7 +77,7 @@ struct consumer_data { /* Const values */ const char default_home_dir[] = DEFAULT_HOME_DIR; -const char default_tracing_group[] = LTTNG_DEFAULT_TRACING_GROUP; +const char default_tracing_group[] = DEFAULT_TRACING_GROUP; const char default_ust_sock_dir[] = DEFAULT_UST_SOCK_DIR; const char default_global_apps_pipe[] = DEFAULT_GLOBAL_APPS_PIPE; @@ -215,11 +215,11 @@ void setup_consumerd_path(void) if (bin) { consumerd64_bin = bin; } - libdir = getenv("LTTNG_TOOLS_CONSUMERD32_LIBDIR"); + libdir = getenv("LTTNG_CONSUMERD32_LIBDIR"); if (libdir) { consumerd32_libdir = libdir; } - libdir = getenv("LTTNG_TOOLS_CONSUMERD64_LIBDIR"); + libdir = getenv("LTTNG_CONSUMERD64_LIBDIR"); if (libdir) { consumerd64_libdir = libdir; } @@ -1110,10 +1110,16 @@ static void *thread_manage_apps(void *data) } /* - * Add channel(s) and event(s) to newly registered apps - * from lttng global UST domain. + * Validate UST version compatibility. */ - update_ust_app(ust_cmd.sock); + ret = ust_app_validate_version(ust_cmd.sock); + if (ret >= 0) { + /* + * Add channel(s) and event(s) to newly registered apps + * from lttng global UST domain. + */ + update_ust_app(ust_cmd.sock); + } ret = ust_app_register_done(ust_cmd.sock); if (ret < 0) { @@ -2153,11 +2159,11 @@ static int cmd_disable_channel(struct ltt_session *session, } break; } +#if 0 case LTTNG_DOMAIN_UST_PID_FOLLOW_CHILDREN: case LTTNG_DOMAIN_UST_EXEC_NAME: case LTTNG_DOMAIN_UST_PID: - ret = LTTCOMM_NOT_IMPLEMENTED; - goto error; +#endif default: ret = LTTCOMM_UNKNOWN_DOMAIN; goto error; @@ -2216,11 +2222,11 @@ static int cmd_enable_channel(struct ltt_session *session, } break; } +#if 0 case LTTNG_DOMAIN_UST_PID_FOLLOW_CHILDREN: case LTTNG_DOMAIN_UST_EXEC_NAME: case LTTNG_DOMAIN_UST_PID: - ret = LTTCOMM_NOT_IMPLEMENTED; - goto error; +#endif default: ret = LTTCOMM_UNKNOWN_DOMAIN; goto error; @@ -2283,11 +2289,13 @@ static int cmd_disable_event(struct ltt_session *session, int domain, channel_name); break; } +#if 0 case LTTNG_DOMAIN_UST_EXEC_NAME: case LTTNG_DOMAIN_UST_PID: case LTTNG_DOMAIN_UST_PID_FOLLOW_CHILDREN: +#endif default: - ret = LTTCOMM_NOT_IMPLEMENTED; + ret = LTTCOMM_UND; goto error; } @@ -2350,11 +2358,13 @@ static int cmd_disable_event_all(struct ltt_session *session, int domain, break; } +#if 0 case LTTNG_DOMAIN_UST_EXEC_NAME: case LTTNG_DOMAIN_UST_PID: case LTTNG_DOMAIN_UST_PID_FOLLOW_CHILDREN: +#endif default: - ret = LTTCOMM_NOT_IMPLEMENTED; + ret = LTTCOMM_UND; goto error; } @@ -2391,11 +2401,13 @@ static int cmd_add_context(struct ltt_session *session, int domain, } break; } +#if 0 case LTTNG_DOMAIN_UST_EXEC_NAME: case LTTNG_DOMAIN_UST_PID: case LTTNG_DOMAIN_UST_PID_FOLLOW_CHILDREN: +#endif default: - ret = LTTCOMM_NOT_IMPLEMENTED; + ret = LTTCOMM_UND; goto error; } @@ -2506,11 +2518,13 @@ static int cmd_enable_event(struct ltt_session *session, int domain, } break; } +#if 0 case LTTNG_DOMAIN_UST_EXEC_NAME: case LTTNG_DOMAIN_UST_PID: case LTTNG_DOMAIN_UST_PID_FOLLOW_CHILDREN: +#endif default: - ret = LTTCOMM_NOT_IMPLEMENTED; + ret = LTTCOMM_UND; goto error; } @@ -2641,11 +2655,13 @@ static int cmd_enable_event_all(struct ltt_session *session, int domain, break; } +#if 0 case LTTNG_DOMAIN_UST_EXEC_NAME: case LTTNG_DOMAIN_UST_PID: case LTTNG_DOMAIN_UST_PID_FOLLOW_CHILDREN: +#endif default: - ret = LTTCOMM_NOT_IMPLEMENTED; + ret = LTTCOMM_UND; goto error; } @@ -2679,7 +2695,7 @@ static ssize_t cmd_list_tracepoints(int domain, struct lttng_event **events) } break; default: - ret = LTTCOMM_NOT_IMPLEMENTED; + ret = LTTCOMM_UND; goto error; } @@ -2908,9 +2924,20 @@ static int cmd_calibrate(int domain, struct lttng_calibrate *calibrate) } break; } + case LTTNG_DOMAIN_UST: + { + struct lttng_ust_calibrate ucalibrate; + + ucalibrate.type = calibrate->type; + ret = ust_app_calibrate_glb(&ucalibrate); + if (ret < 0) { + ret = LTTCOMM_UST_CALIBRATE_FAIL; + goto error; + } + break; + } default: - /* TODO: Userspace tracing */ - ret = LTTCOMM_NOT_IMPLEMENTED; + ret = LTTCOMM_UND; goto error; } @@ -2946,7 +2973,7 @@ static int cmd_register_consumer(struct ltt_session *session, int domain, break; default: /* TODO: Userspace tracing */ - ret = LTTCOMM_NOT_IMPLEMENTED; + ret = LTTCOMM_UND; goto error; } @@ -3022,7 +3049,7 @@ static ssize_t cmd_list_channels(int domain, struct ltt_session *session, break; default: *channels = NULL; - ret = -LTTCOMM_NOT_IMPLEMENTED; + ret = -LTTCOMM_UND; goto error; } @@ -3069,7 +3096,7 @@ static ssize_t cmd_list_events(int domain, struct ltt_session *session, break; } default: - ret = -LTTCOMM_NOT_IMPLEMENTED; + ret = -LTTCOMM_UND; goto error; } @@ -3535,7 +3562,7 @@ static void *thread_manage_clients(void *data) * Notify parent pid that we are ready to accept command for client side. */ if (opt_sig_parent) { - kill(ppid, SIGCHLD); + kill(ppid, SIGUSR1); } while (1) { @@ -4050,14 +4077,14 @@ static void sighandler(int sig) { switch (sig) { case SIGPIPE: - DBG("SIGPIPE caugth"); + DBG("SIGPIPE caught"); return; case SIGINT: - DBG("SIGINT caugth"); + DBG("SIGINT caught"); stop_threads(); break; case SIGTERM: - DBG("SIGTERM caugth"); + DBG("SIGTERM caught"); stop_threads(); break; default: @@ -4131,6 +4158,8 @@ int main(int argc, char **argv) void *status; const char *home_path; + init_kernel_workarounds(); + rcu_register_thread(); /* Create thread quit pipe */