Rename Python agent event name to omit "user"
[lttng-tools.git] / src / bin / lttng-sessiond / event.c
index 564cbb784f463f2f48e4539bba70759c28e96381..e9192900892acb831fdc32ab160bc7c9f3e28a5b 100644 (file)
@@ -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.
@@ -61,7 +62,7 @@ static void add_unique_ust_event(struct lttng_ht *ht,
 /*
  * Disable kernel tracepoint event for a channel from the kernel session.
  */
-int event_kernel_disable_tracepoint(struct ltt_kernel_channel *kchan,
+int event_kernel_disable_event(struct ltt_kernel_channel *kchan,
                char *event_name)
 {
        int ret;
@@ -69,7 +70,8 @@ int event_kernel_disable_tracepoint(struct ltt_kernel_channel *kchan,
 
        assert(kchan);
 
-       kevent = trace_kernel_get_event_by_name(event_name, kchan);
+       kevent = trace_kernel_get_event_by_name(event_name, kchan,
+                       LTTNG_EVENT_ALL);
        if (kevent == NULL) {
                ret = LTTNG_ERR_NO_EVENT;
                goto error;
@@ -90,61 +92,11 @@ error:
        return ret;
 }
 
-/*
- * Enable kernel system call for a channel from the kernel session.
- */
-int event_kernel_enable_syscall(struct ltt_kernel_channel *kchan,
-               char *syscall_name)
-{
-       int ret;
-
-       assert(kchan);
-
-       ret = kernel_enable_syscall(syscall_name, kchan);
-       if (ret < 0) {
-               ret = LTTNG_ERR_KERN_ENABLE_FAIL;
-               goto error;
-       }
-
-       DBG("Kernel syscall %s enable for channel %s.",
-                       syscall_name, kchan->channel->name);
-
-       ret = LTTNG_OK;
-
-error:
-       return ret;
-}
-
-/*
- * Disable kernel system call for a channel from the kernel session.
- */
-int event_kernel_disable_syscall(struct ltt_kernel_channel *kchan,
-               char *syscall_name)
-{
-       int ret;
-
-       assert(kchan);
-
-       ret = kernel_disable_syscall(syscall_name, kchan);
-       if (ret < 0) {
-               ret = LTTNG_ERR_KERN_DISABLE_FAIL;
-               goto error;
-       }
-
-       DBG("Kernel syscall %s disable for channel %s.",
-                       !strcmp(syscall_name, "*") ? "<all>" : syscall_name,
-                       kchan->channel->name);
-
-       ret = LTTNG_OK;
-
-error:
-       return ret;
-}
-
 /*
  * Disable kernel tracepoint events for a channel from the kernel session.
  */
-int event_kernel_disable_all_tracepoints(struct ltt_kernel_channel *kchan)
+int event_kernel_disable_event_type(struct ltt_kernel_channel *kchan,
+               enum lttng_event_type type)
 {
        int ret;
        struct ltt_kernel_event *kevent;
@@ -153,6 +105,8 @@ int event_kernel_disable_all_tracepoints(struct ltt_kernel_channel *kchan)
 
        /* For each event in the kernel session */
        cds_list_for_each_entry(kevent, &kchan->events_list.head, list) {
+               if (type != LTTNG_EVENT_ALL && kevent->type != type)
+                       continue;
                ret = kernel_disable_event(kevent);
                if (ret < 0) {
                        /* We continue disabling the rest */
@@ -166,25 +120,18 @@ int event_kernel_disable_all_tracepoints(struct ltt_kernel_channel *kchan)
 /*
  * Disable all kernel event for a channel from the kernel session.
  */
-int event_kernel_disable_all(struct ltt_kernel_channel *kchan)
+int event_kernel_disable_event_all(struct ltt_kernel_channel *kchan)
 {
-       int ret;
-
-       assert(kchan);
-
-       ret = event_kernel_disable_all_tracepoints(kchan);
-       if (ret != LTTNG_OK)
-               return ret;
-       ret = event_kernel_disable_syscall(kchan, "*");
-       return ret;
+       return event_kernel_disable_event_type(kchan, LTTNG_EVENT_ALL);
 }
 
 /*
  * Enable kernel tracepoint event for a channel from the kernel session.
  * We own filter_expression and filter.
  */
-int event_kernel_enable_tracepoint(struct ltt_kernel_channel *kchan,
-               struct lttng_event *event)
+int event_kernel_enable_event(struct ltt_kernel_channel *kchan,
+               struct lttng_event *event, char *filter_expression,
+               struct lttng_filter_bytecode *filter)
 {
        int ret;
        struct ltt_kernel_event *kevent;
@@ -192,9 +139,14 @@ int event_kernel_enable_tracepoint(struct ltt_kernel_channel *kchan,
        assert(kchan);
        assert(event);
 
-       kevent = trace_kernel_get_event_by_name(event->name, kchan);
+       kevent = trace_kernel_find_event(event->name, kchan,
+                       event->type, filter);
        if (kevent == NULL) {
-               ret = kernel_create_event(event, kchan);
+               ret = kernel_create_event(event, kchan,
+                       filter_expression, filter);
+               /* We have passed ownership */
+               filter_expression = NULL;
+               filter = NULL;
                if (ret < 0) {
                        switch (-ret) {
                        case EEXIST:
@@ -223,6 +175,8 @@ int event_kernel_enable_tracepoint(struct ltt_kernel_channel *kchan,
 
        ret = LTTNG_OK;
 end:
+       free(filter_expression);
+       free(filter);
        return ret;
 }
 
@@ -643,8 +597,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)
 {
@@ -652,21 +606,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);
This page took 0.025234 seconds and 4 git commands to generate.