#include <sys/wait.h>
 #include <poll.h>
 #include <sys/stat.h>
+#include <time.h>
 #include "builtin.h"
 #include "perf.h"
 #include "debug.h"
        int                              pid;
        struct list_head                 list;
        enum daemon_session_state        state;
+       time_t                           start;
 };
 
 struct daemon {
        FILE                    *out;
        char                     perf[PATH_MAX];
        int                      signal_fd;
+       time_t                   start;
 };
 
 static struct daemon __daemon = {
                return -1;
        }
 
+       session->start = time(NULL);
+
        session->pid = fork();
        if (session->pid < 0)
                return -1;
 {
        char csv_sep = cmd->list.csv_sep;
        struct daemon_session *session;
+       time_t curr = time(NULL);
 
        if (csv_sep) {
                fprintf(out, "%d%c%s%c%s%c%s/%s",
                        /* lock */
                        csv_sep, daemon->base, "lock");
 
+               fprintf(out, "%c%lu",
+                       /* session up time */
+                       csv_sep, (curr - daemon->start) / 60);
+
                fprintf(out, "\n");
        } else {
                fprintf(out, "[%d:daemon] base: %s\n", getpid(), daemon->base);
                                daemon->base, SESSION_OUTPUT);
                        fprintf(out, "  lock:    %s/lock\n",
                                daemon->base);
+                       fprintf(out, "  up:      %lu minutes\n",
+                               (curr - daemon->start) / 60);
                }
        }
 
                                /* session ack */
                                csv_sep, session->base, SESSION_ACK);
 
+                       fprintf(out, "%c%lu",
+                               /* session up time */
+                               csv_sep, (curr - session->start) / 60);
+
                        fprintf(out, "\n");
                } else {
                        fprintf(out, "[%d:%s] perf record %s\n",
                                session->base, SESSION_CONTROL);
                        fprintf(out, "  ack:     %s/%s\n",
                                session->base, SESSION_ACK);
+                       fprintf(out, "  up:      %lu minutes\n",
+                               (curr - session->start) / 60);
                }
        }
 
        if (argc)
                usage_with_options(daemon_usage, start_options);
 
+       daemon->start = time(NULL);
+
        if (setup_config(daemon)) {
                pr_err("failed: config not found\n");
                return -1;