-/* LTTng kernel tracer modules list */
-const struct module_param kernel_modules_list[] = {
- { "lttng-ftrace", 0 },
- { "lttng-kprobes", 0 },
- { "lttng-kretprobes", 0 },
- { "lib-ring-buffer", 1 },
- { "ltt-relay", 1 },
- { "ltt-ring-buffer-client-discard", 1 },
- { "ltt-ring-buffer-client-overwrite", 1 },
- { "ltt-ring-buffer-metadata-client", 1 },
- { "ltt-ring-buffer-client-mmap-discard", 1 },
- { "ltt-ring-buffer-client-mmap-overwrite", 1 },
- { "ltt-ring-buffer-metadata-mmap-client", 1 },
- { "lttng-probe-lttng", 1 },
- { "lttng-types", 0 },
- { "lttng-probe-block", 0 },
- { "lttng-probe-irq", 0 },
- { "lttng-probe-kvm", 0 },
- { "lttng-probe-sched", 0 },
-};
+/* Unique identifier of a session daemon instance. */
+extern lttng_uuid the_sessiond_uuid;
+
+/*
+ * This consumer daemon state is used to validate if a client command will be
+ * able to reach the consumer. If not, the client is informed. For instance,
+ * doing a "lttng start" when the consumer state is set to ERROR will return an
+ * error to the client.
+ *
+ * The following example shows a possible race condition of this scheme:
+ *
+ * consumer thread error happens
+ * client cmd arrives
+ * client cmd checks state -> still OK
+ * consumer thread exit, sets error
+ * client cmd try to talk to consumer
+ * ...
+ *
+ * However, since the consumer is a different daemon, we have no way of making
+ * sure the command will reach it safely even with this state flag. This is why
+ * we consider that up to the state validation during command processing, the
+ * command is safe. After that, we can not guarantee the correctness of the
+ * client request vis-a-vis the consumer.
+ */
+extern enum consumerd_state the_ust_consumerd_state;
+extern enum consumerd_state the_kernel_consumerd_state;