Propagate trace format to ltt_kernel_session object
[lttng-tools.git] / src / bin / lttng-sessiond / kernel.cpp
index 9d256e2075373c7dbb1de925a2f759129e6742bd..ca2b403ed84f6b72321e31643db637489d216d97 100644 (file)
@@ -118,7 +118,9 @@ int kernel_create_session(struct ltt_session *session)
        LTTNG_ASSERT(session);
 
        /* Allocate data structure */
-       lks = trace_kernel_create_session();
+       lks = trace_kernel_create_session(
+                       std::const_pointer_cast<const lttng::trace_format_descriptor>(
+                                       session->trace_format));
        if (lks == NULL) {
                ret = -1;
                goto error;
@@ -164,6 +166,11 @@ int kernel_create_session(struct ltt_session *session)
                        session->id, session->name);
        }
 
+       ret = kernctl_session_set_trace_format(lks->fd, *session->trace_format);
+       if (ret) {
+               WARN("Could not set kernel session trace format %" PRIu64 " name: %s", session->id,
+                               session->name);
+       }
        return 0;
 
 error:
@@ -1436,7 +1443,7 @@ ssize_t kernel_list_events(struct lttng_event **events)
         * See kernel-ctl.h for explanation of this value
         */
        nbmem = KERNEL_EVENT_INIT_LIST_SIZE;
-       elist = (lttng_event *) zmalloc(sizeof(struct lttng_event) * nbmem);
+       elist = calloc<lttng_event>(nbmem);
        if (elist == NULL) {
                PERROR("alloc list events");
                count = -ENOMEM;
@@ -1837,6 +1844,22 @@ int kernel_supports_event_notifiers(void)
        return kernel_tracer_abi_greater_or_equal(2, 6);
 }
 
+/*
+ * Check for the support of ctf2 via abi version number.
+ *
+ * Return 1 on success, 0 when feature is not supported, negative value in case
+ * of errors.
+ */
+int kernel_supports_ctf2(void)
+{
+       /*
+        * JORAJ TODO: change this for the actual value when merged upstream
+        *             default to 2.7 ABI for now (modules 2.14)
+        * CTF2 support was introduced in LTTng 2.1XX, lttng-modules ABI 2.XX.
+        */
+       return kernel_tracer_abi_greater_or_equal(2, 7);
+}
+
 /*
  * Rotate a kernel session.
  *
This page took 0.025755 seconds and 5 git commands to generate.