Fix: consumerd: use packet sequence number for rotation position
[lttng-tools.git] / src / bin / lttng-sessiond / kernel.c
index daf14b3396f8e8792b50c52028310aff0cf164d4..b5c4a5e1267b5ae5fbe95cd70723ed2afb5710ab 100644 (file)
@@ -148,6 +148,12 @@ int kernel_create_session(struct ltt_session *session)
                        session->id, session->name);
        }
 
+       ret = kernctl_session_set_creation_time(lks->fd, session->creation_time);
+       if (ret) {
+               WARN("Could not set kernel session creation time for session %" PRIu64 " name: %s",
+                       session->id, session->name);
+       }
+
        return 0;
 
 error:
@@ -1419,6 +1425,37 @@ error:
        return ret;
 }
 
+/*
+ * Check for the support of the packet sequence number via abi version number.
+ *
+ * Return 1 on success, 0 when feature is not supported, negative value in case
+ * of errors.
+ */
+int kernel_supports_ring_buffer_packet_sequence_number(void)
+{
+       int ret = 0; // Not supported by default
+       struct lttng_kernel_tracer_abi_version abi;
+
+       ret = kernctl_tracer_abi_version(kernel_tracer_fd, &abi);
+       if (ret < 0) {
+               ERR("Failed to retrieve lttng-modules ABI version");
+               goto error;
+       }
+
+       /*
+        * Packet sequence number was introduced in 2.8
+        */
+       if (abi.major >= 2 && abi.minor >= 8) {
+               /* Supported */
+               ret = 1;
+       } else {
+               /* Not supported */
+               ret = 0;
+       }
+error:
+       return ret;
+}
+
 /*
  * Rotate a kernel session.
  *
This page took 0.025738 seconds and 4 git commands to generate.