X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fevent.c;h=017efa1d5a7d2fd7bd86ac48aa0efb42444b562f;hb=be42c96885c522f857f146fa6f7ae53856e3bed2;hp=bedaa2e2f4e220e63c6458a1c7947aaa9081b3a3;hpb=a969e1019813f1e2354fe57c8393f6268d943414;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/event.c b/src/bin/lttng-sessiond/event.c index bedaa2e2f..017efa1d5 100644 --- a/src/bin/lttng-sessiond/event.c +++ b/src/bin/lttng-sessiond/event.c @@ -33,6 +33,7 @@ #include "ust-app.h" #include "trace-kernel.h" #include "trace-ust.h" +#include "agent.h" /* * Add unique UST event based on the event name, filter bytecode and loglevel. @@ -185,103 +186,6 @@ end: * ============================ */ -/* - * Enable all UST tracepoints for a channel from a UST session. - */ -int event_ust_enable_all_tracepoints(struct ltt_ust_session *usess, - struct ltt_ust_channel *uchan, - char *filter_expression, - struct lttng_filter_bytecode *filter) -{ - int ret, i, size; - struct lttng_ht_iter iter; - struct ltt_ust_event *uevent = NULL; - struct lttng_event *events = NULL; - - assert(usess); - assert(uchan); - - rcu_read_lock(); - - /* Enable existing events */ - cds_lfht_for_each_entry(uchan->events->ht, &iter.iter, uevent, - node.node) { - if (uevent->enabled == 0) { - ret = ust_app_enable_event_glb(usess, uchan, uevent); - if (ret < 0) { - continue; - } - uevent->enabled = 1; - } - } - - /* Get all UST available events */ - size = ust_app_list_events(&events); - if (size < 0) { - ret = LTTNG_ERR_UST_LIST_FAIL; - goto error; - } - - for (i = 0; i < size; i++) { - /* - * Check if event exist and if so, continue since it was enable - * previously. - */ - uevent = trace_ust_find_event(uchan->events, events[i].name, filter, - events[i].loglevel, NULL); - if (uevent != NULL) { - ret = ust_app_enable_event_pid(usess, uchan, uevent, - events[i].pid); - if (ret < 0) { - if (ret != -LTTNG_UST_ERR_EXIST) { - ret = LTTNG_ERR_UST_ENABLE_FAIL; - goto error; - } - } - continue; - } - - /* Create ust event */ - uevent = trace_ust_create_event(&events[i], filter_expression, - filter, NULL); - if (uevent == NULL) { - ret = LTTNG_ERR_FATAL; - goto error_destroy; - } - - /* Create event for the specific PID */ - ret = ust_app_enable_event_pid(usess, uchan, uevent, - events[i].pid); - if (ret < 0) { - if (ret == -LTTNG_UST_ERR_EXIST) { - ret = LTTNG_ERR_UST_EVENT_EXIST; - goto error; - } else { - ret = LTTNG_ERR_UST_ENABLE_FAIL; - goto error_destroy; - } - } - - uevent->enabled = 1; - /* Add ltt ust event to channel */ - rcu_read_lock(); - add_unique_ust_event(uchan->events, uevent); - rcu_read_unlock(); - } - free(events); - - rcu_read_unlock(); - return LTTNG_OK; - -error_destroy: - trace_ust_destroy_event(uevent); - -error: - free(events); - rcu_read_unlock(); - return ret; -} - /* * Enable UST tracepoint event for a channel from a UST session. * We own filter_expression, filter, and exclusion. @@ -447,60 +351,6 @@ error: return ret; } -/* - * Disable all UST tracepoints for a channel from a UST session. - */ -int event_ust_disable_all_tracepoints(struct ltt_ust_session *usess, - struct ltt_ust_channel *uchan) -{ - int ret, i, size; - struct lttng_ht_iter iter; - struct ltt_ust_event *uevent = NULL; - struct lttng_event *events = NULL; - - assert(usess); - assert(uchan); - - rcu_read_lock(); - - /* Disabling existing events */ - cds_lfht_for_each_entry(uchan->events->ht, &iter.iter, uevent, - node.node) { - if (uevent->enabled == 1) { - ret = event_ust_disable_tracepoint(usess, uchan, - uevent->attr.name); - if (ret < 0) { - continue; - } - } - } - - /* Get all UST available events */ - size = ust_app_list_events(&events); - if (size < 0) { - ret = LTTNG_ERR_UST_LIST_FAIL; - goto error; - } - - for (i = 0; i < size; i++) { - ret = event_ust_disable_tracepoint(usess, uchan, - events[i].name); - if (ret != LTTNG_OK) { - /* Continue to disable the rest... */ - continue; - } - } - free(events); - - rcu_read_unlock(); - return LTTNG_OK; - -error: - free(events); - rcu_read_unlock(); - return ret; -} - /* * Enable all agent event for a given UST session. * @@ -596,8 +446,8 @@ error: } /* - * Return the agent default event name to use by testing if the process is root - * or not. Return NULL on error. + * Return the default event name associated with the provided UST domain. Return + * NULL on error. */ const char *event_get_default_agent_ust_name(enum lttng_domain_type domain) { @@ -605,21 +455,13 @@ const char *event_get_default_agent_ust_name(enum lttng_domain_type domain) switch (domain) { case LTTNG_DOMAIN_LOG4J: - if (is_root) { - default_event_name = DEFAULT_SYS_LOG4J_EVENT_NAME; - } else { - default_event_name = DEFAULT_USER_LOG4J_EVENT_NAME; - } + default_event_name = DEFAULT_LOG4J_EVENT_NAME; break; case LTTNG_DOMAIN_JUL: - if (is_root) { - default_event_name = DEFAULT_SYS_JUL_EVENT_NAME; - } else { - default_event_name = DEFAULT_USER_JUL_EVENT_NAME; - } + default_event_name = DEFAULT_JUL_EVENT_NAME; break; case LTTNG_DOMAIN_PYTHON: - default_event_name = DEFAULT_USER_PYTHON_EVENT_NAME; + default_event_name = DEFAULT_PYTHON_EVENT_NAME; break; default: assert(0);