Support LTTNG_KERNEL_SESSION_SET_CREATION_DATETIME of lttng-modules
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Thu, 5 Sep 2019 22:23:54 +0000 (18:23 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 5 Sep 2019 22:50:15 +0000 (18:50 -0400)
Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/bin/lttng-sessiond/kernel.c
src/common/kernel-ctl/kernel-ctl.c
src/common/kernel-ctl/kernel-ctl.h
src/common/kernel-ctl/kernel-ioctl.h
src/common/lttng-kernel.h

index daf14b3396f8e8792b50c52028310aff0cf164d4..76162e08c75b3b15b226f02cc4f2625519e3d064 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:
index c9c52b528d582d9282112b4d3d62d1a5903e13cd..14d96b5778ba36a1d05c2c44608c4b36f3668955 100644 (file)
@@ -26,6 +26,7 @@
 #include <errno.h>
 #include <stdarg.h>
 #include <assert.h>
+#include <common/time.h>
 
 #include "kernel-ctl.h"
 #include "kernel-ioctl.h"
@@ -255,6 +256,23 @@ end:
        return ret;
 }
 
+int kernctl_session_set_creation_time(int fd, time_t time)
+{
+       int ret;
+       struct lttng_kernel_session_creation_time creation_time;
+
+       ret = time_to_iso8601_str(time, creation_time.iso8601,
+                       sizeof(creation_time.iso8601));
+       if (ret) {
+               goto end;
+       }
+
+       ret = LTTNG_IOCTL_CHECK(fd, LTTNG_KERNEL_SESSION_SET_CREATION_TIME,
+                       &creation_time);
+end:
+       return ret;
+}
+
 int kernctl_create_stream(int fd)
 {
        return compat_ioctl_no_arg(fd, LTTNG_KERNEL_OLD_STREAM,
index 884929ac17753a5a90a429c56cd63d6534c1c37a..053e7df6314fc1dfd7ba99e8822a5afaf5f5a33e 100644 (file)
@@ -68,6 +68,7 @@ int kernctl_list_tracker_pids(int fd);
 int kernctl_session_regenerate_metadata(int fd);
 int kernctl_session_regenerate_statedump(int fd);
 int kernctl_session_set_name(int fd, const char *name);
+int kernctl_session_set_creation_time(int fd, time_t time);
 
 /* Buffer operations */
 
index ce910e96f64a5c58100342d9b6cd976d94ae577a..8d39abbe38ec882a3c691e07172511a2ff204b27 100644 (file)
 #define LTTNG_KERNEL_SESSION_STATEDUMP         _IO(0xF6, 0x5C)
 #define LTTNG_KERNEL_SESSION_SET_NAME          \
        _IOR(0xF6, 0x5D, struct lttng_kernel_session_name)
+#define LTTNG_KERNEL_SESSION_SET_CREATION_TIME         \
+       _IOR(0xF6, 0x5E, struct lttng_kernel_session_creation_time)
 
 /* Channel FD ioctl */
 #define LTTNG_KERNEL_STREAM                    _IO(0xF6, 0x62)
index 001a16e2d4507e844535fdc88e4687f52160e636..2fd14dc1e76db698ba9a89b0ea23476693e8b19b 100644 (file)
@@ -28,6 +28,7 @@
 #define LTTNG_KERNEL_SYM_NAME_LEN  256
 #define LTTNG_KERNEL_MAX_UPROBE_NUM  32
 #define LTTNG_KERNEL_SESSION_NAME_LEN  256
+#define LTTNG_KERNEL_SESSION_CREATION_TIME_ISO8601_LEN 26
 
 /*
  * LTTng DebugFS ABI structures.
@@ -186,4 +187,11 @@ struct lttng_kernel_session_name {
        char name[LTTNG_KERNEL_SESSION_NAME_LEN];
 } LTTNG_PACKED;
 
+/*
+ * kernel session creation datetime
+ */
+struct lttng_kernel_session_creation_time {
+       char iso8601[LTTNG_KERNEL_SESSION_CREATION_TIME_ISO8601_LEN];
+} LTTNG_PACKED;
+
 #endif /* _LTTNG_KERNEL_H */
This page took 0.028241 seconds and 4 git commands to generate.