Make kernel tracer version global to the session daemon
[lttng-tools.git] / src / bin / lttng-sessiond / main.c
index 4c3a1796c8aa58abac502fbee00195b68c0d262d..2923664edc7e20d4b7c67b6ec0be621dcab942a9 100644 (file)
@@ -94,6 +94,9 @@ static int lockfile_fd = -1;
 /* Set to 1 when a SIGUSR1 signal is received. */
 static int recv_child_signal;
 
+static struct lttng_kernel_tracer_version kernel_tracer_version;
+static struct lttng_kernel_tracer_abi_version kernel_tracer_abi_version;
+
 /*
  * Consumer daemon specific control data. Every value not initialized here is
  * set to 0 by the static definition.
@@ -1270,6 +1273,7 @@ restart:
        if (!cmd_socket_wrapper) {
                goto error;
        }
+       cmd_socket_wrapper->lock = &consumer_data->lock;
 
        ret = consumer_send_channel_monitor_pipe(cmd_socket_wrapper,
                        consumer_data->channel_monitor_pipe);
@@ -1445,7 +1449,17 @@ error_poll:
 }
 
 /*
- * This thread manage application communication.
+ * This thread receives application command sockets (FDs) on the
+ * apps_cmd_pipe and waits (polls) on them until they are closed
+ * or an error occurs.
+ *
+ * At that point, it flushes the data (tracing and metadata) associated
+ * with this application and tears down ust app sessions and other
+ * associated data structures through ust_app_unregister().
+ *
+ * Note that this thread never sends commands to the applications
+ * through the command sockets; it merely listens for hang-ups
+ * and errors on those sockets and cleans-up as they occur.
  */
 static void *thread_manage_apps(void *data)
 {
@@ -2610,7 +2624,8 @@ static int init_kernel_tracer(void)
        }
 
        /* Validate kernel version */
-       ret = kernel_validate_version(kernel_tracer_fd);
+       ret = kernel_validate_version(kernel_tracer_fd, &kernel_tracer_version,
+                       &kernel_tracer_abi_version);
        if (ret < 0) {
                goto error_version;
        }
This page took 0.023902 seconds and 4 git commands to generate.