X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fmain.c;h=2aa93e63e915d8e0b03357f815ad7c3f3d13f766;hb=ed7f40833d26f9d757c455607118c6d8e866a956;hp=023ad48b991a75e983cf9d9148909d8b567e06b7;hpb=1ab1ea0b77d5fc71765e06b5c84431e403e8bd2e;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/main.c b/src/bin/lttng-sessiond/main.c index 023ad48b9..2aa93e63e 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; } @@ -314,7 +314,7 @@ error: static void teardown_kernel_session(struct ltt_session *session) { if (!session->kernel_session) { - DBG3("No kernel session when tearingdown session"); + DBG3("No kernel session when tearing down session"); return; } @@ -340,7 +340,7 @@ static void teardown_ust_session(struct ltt_session *session) int ret; if (!session->ust_session) { - DBG3("No UST session when tearingdown session"); + DBG3("No UST session when tearing down session"); return; } @@ -397,7 +397,7 @@ static void cleanup(void) } free(cmd); - DBG("Cleaning up all session"); + DBG("Cleaning up all sessions"); /* Destroy session list mutex */ if (session_list_ptr != NULL) { @@ -2031,8 +2031,15 @@ static int list_lttng_ust_global_events(char *channel_name, case LTTNG_UST_FUNCTION: tmp[i].type = LTTNG_EVENT_FUNCTION; break; - case LTTNG_UST_TRACEPOINT_LOGLEVEL: - tmp[i].type = LTTNG_EVENT_TRACEPOINT_LOGLEVEL; + } + strncpy(tmp[i].loglevel, uevent->attr.loglevel, LTTNG_SYMBOL_NAME_LEN); + tmp[i].loglevel[LTTNG_SYMBOL_NAME_LEN - 1] = '\0'; + switch (uevent->attr.loglevel_type) { + case LTTNG_UST_LOGLEVEL: + tmp[i].type = LTTNG_EVENT_LOGLEVEL; + break; + case LTTNG_UST_LOGLEVEL_ONLY: + tmp[i].type = LTTNG_EVENT_LOGLEVEL_ONLY; break; } i++; @@ -2419,12 +2426,6 @@ error: /* * Command LTTNG_ENABLE_EVENT processed by the client thread. - * - * TODO: currently, both events and loglevels are kept within the same - * namespace for UST global registry/app registery, so if an event - * happen to have the same name as the loglevel (very unlikely though), - * and an attempt is made to enable/disable both in the same session, - * the first to be created will be the only one allowed to exist. */ static int cmd_enable_event(struct ltt_session *session, int domain, char *channel_name, struct lttng_event *event) @@ -2924,8 +2925,19 @@ 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_UND; goto error; } @@ -4066,14 +4078,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: @@ -4147,6 +4159,8 @@ int main(int argc, char **argv) void *status; const char *home_path; + init_kernel_workarounds(); + rcu_register_thread(); /* Create thread quit pipe */