aboutsummaryrefslogtreecommitdiffstats
path: root/meta-mel/recipes-core/systemd/systemd/monotonic-timestamp.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-mel/recipes-core/systemd/systemd/monotonic-timestamp.patch')
-rw-r--r--meta-mel/recipes-core/systemd/systemd/monotonic-timestamp.patch160
1 files changed, 0 insertions, 160 deletions
diff --git a/meta-mel/recipes-core/systemd/systemd/monotonic-timestamp.patch b/meta-mel/recipes-core/systemd/systemd/monotonic-timestamp.patch
deleted file mode 100644
index a79a4d5a..00000000
--- a/meta-mel/recipes-core/systemd/systemd/monotonic-timestamp.patch
+++ /dev/null
@@ -1,160 +0,0 @@
-From 349b0586d07a9d48b781c18c7932c0b3cd102e65 Mon Sep 17 00:00:00 2001
-From: Muhammad Shakeel <mshakeel@pkl-mshakeel-ubuntu.(none)>
-Date: Tue, 25 Jun 2013 18:58:02 +0500
-Subject: [PATCH] systemctl-clock: Use monotonic instead of realtime clock
-
-Currently if system clock is updated then 'ago' part of any service
-running time doesn't show correct information. This is reported here:
-https://bugs.freedesktop.org/show_bug.cgi?id=65616
----
- src/login/loginctl.c | 10 ++++++++--
- src/machine/machinectl.c | 2 +-
- src/shared/time-util.c | 2 +-
- src/systemctl/systemctl.c | 27 ++++++++++++++++++++++++---
- 4 files changed, 34 insertions(+), 7 deletions(-)
-
-diff --git a/src/login/loginctl.c b/src/login/loginctl.c
-index 736db6a..ea64546 100644
---- a/src/login/loginctl.c
-+++ b/src/login/loginctl.c
-@@ -339,6 +339,7 @@ typedef struct SessionStatusInfo {
- uid_t uid;
- const char *name;
- usec_t timestamp;
-+ usec_t timestamp_monotonic;
- int vtnr;
- const char *seat;
- const char *tty;
-@@ -358,6 +359,7 @@ typedef struct UserStatusInfo {
- uid_t uid;
- const char *name;
- usec_t timestamp;
-+ usec_t timestamp_monotonic;
- const char *state;
- char **sessions;
- const char *display;
-@@ -382,7 +384,7 @@ static void print_session_status_info(DBusConnection *bus, SessionStatusInfo *i)
- else
- printf("%u\n", (unsigned) i->uid);
-
-- s1 = format_timestamp_relative(since1, sizeof(since1), i->timestamp);
-+ s1 = format_timestamp_relative(since1, sizeof(since1), i->timestamp_monotonic);
- s2 = format_timestamp(since2, sizeof(since2), i->timestamp);
-
- if (s1)
-@@ -462,7 +464,7 @@ static void print_user_status_info(DBusConnection *bus, UserStatusInfo *i) {
- else
- printf("%u\n", (unsigned) i->uid);
-
-- s1 = format_timestamp_relative(since1, sizeof(since1), i->timestamp);
-+ s1 = format_timestamp_relative(since1, sizeof(since1), i->timestamp_monotonic);
- s2 = format_timestamp(since2, sizeof(since2), i->timestamp);
-
- if (s1)
-@@ -598,6 +600,8 @@ static int status_property_session(const char *name, DBusMessageIter *iter, Sess
-
- if (streq(name, "Timestamp"))
- i->timestamp = (usec_t) u;
-+ else if (streq(name, "TimestampMonotonic"))
-+ i->timestamp_monotonic = (usec_t) u;
-
- break;
- }
-@@ -670,6 +674,8 @@ static int status_property_user(const char *name, DBusMessageIter *iter, UserSta
-
- if (streq(name, "Timestamp"))
- i->timestamp = (usec_t) u;
-+ else if (streq(name, "TimestampMonotonic"))
-+ i->timestamp_monotonic = (usec_t) u;
-
- break;
- }
-diff --git a/src/shared/time-util.c b/src/shared/time-util.c
-index 9ee711a..08c8a2f 100644
---- a/src/shared/time-util.c
-+++ b/src/shared/time-util.c
-@@ -171,7 +171,7 @@ char *format_timestamp(char *buf, size_t l, usec_t t) {
- char *format_timestamp_relative(char *buf, size_t l, usec_t t) {
- usec_t n, d;
-
-- n = now(CLOCK_REALTIME);
-+ n = now(CLOCK_MONOTONIC);
-
- if (t <= 0 || t > n || t + USEC_PER_DAY*7 <= t)
- return NULL;
-diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
-index 9f47b2c..a05b5f8 100644
---- a/src/systemctl/systemctl.c
-+++ b/src/systemctl/systemctl.c
-@@ -2515,6 +2515,9 @@ typedef struct UnitStatusInfo {
- usec_t active_enter_timestamp;
- usec_t active_exit_timestamp;
- usec_t inactive_enter_timestamp;
-+ usec_t active_enter_timestamp_monotonic;
-+ usec_t active_exit_timestamp_monotonic;
-+ usec_t inactive_enter_timestamp_monotonic;
-
- bool need_daemon_reload;
-
-@@ -2531,6 +2534,7 @@ typedef struct UnitStatusInfo {
- int exit_code, exit_status;
-
- usec_t condition_timestamp;
-+ usec_t condition_timestamp_monotonic;
- bool condition_result;
- bool failed_condition_trigger;
- bool failed_condition_negate;
-@@ -2560,7 +2564,7 @@ typedef struct UnitStatusInfo {
- static void print_status_info(UnitStatusInfo *i) {
- ExecStatusInfo *p;
- const char *on, *off, *ss;
-- usec_t timestamp;
-+ usec_t timestamp, timestamp_monotonic;
- char since1[FORMAT_TIMESTAMP_RELATIVE_MAX], *s1;
- char since2[FORMAT_TIMESTAMP_MAX], *s2;
- const char *path;
-@@ -2664,7 +2668,14 @@ static void print_status_info(UnitStatusInfo *i) {
- streq_ptr(i->active_state, "activating") ? i->inactive_exit_timestamp :
- i->active_exit_timestamp;
-
-- s1 = format_timestamp_relative(since1, sizeof(since1), timestamp);
-+ timestamp_monotonic = (streq_ptr(i->active_state, "active") ||
-+ streq_ptr(i->active_state, "reloading")) ? i->active_enter_timestamp_monotonic :
-+ (streq_ptr(i->active_state, "inactive") ||
-+ streq_ptr(i->active_state, "failed")) ? i->inactive_enter_timestamp_monotonic :
-+ streq_ptr(i->active_state, "activating") ? i->inactive_exit_timestamp_monotonic :
-+ i->active_exit_timestamp_monotonic;
-+
-+ s1 = format_timestamp_relative(since1, sizeof(since1), timestamp_monotonic);
- s2 = format_timestamp(since2, sizeof(since2), timestamp);
-
- if (s1)
-@@ -2675,7 +2686,7 @@ static void print_status_info(UnitStatusInfo *i) {
- printf("\n");
-
- if (!i->condition_result && i->condition_timestamp > 0) {
-- s1 = format_timestamp_relative(since1, sizeof(since1), i->condition_timestamp);
-+ s1 = format_timestamp_relative(since1, sizeof(since1), i->condition_timestamp_monotonic);
- s2 = format_timestamp(since2, sizeof(since2), i->condition_timestamp);
-
- printf(" start condition failed at %s%s%s\n",
-@@ -3030,6 +3041,16 @@ static int status_property(const char *name, DBusMessageIter *iter, UnitStatusIn
- i->active_exit_timestamp = (usec_t) u;
- else if (streq(name, "ConditionTimestamp"))
- i->condition_timestamp = (usec_t) u;
-+ else if (streq(name, "ActiveEnterTimestampMonotonic"))
-+ i->active_enter_timestamp_monotonic = (usec_t) u;
-+ else if (streq(name, "InactiveEnterTimestampMonotonic"))
-+ i->inactive_enter_timestamp_monotonic = (usec_t) u;
-+ else if (streq(name, "InactiveExitTimestampMonotonic"))
-+ i->inactive_exit_timestamp_monotonic = (usec_t) u;
-+ else if (streq(name, "ActiveExitTimestampMonotonic"))
-+ i->active_exit_timestamp_monotonic = (usec_t) u;
-+ else if (streq(name, "ConditionTimestampMonotonic"))
-+ i->condition_timestamp_monotonic = (usec_t) u;
-
- break;
- }
---
-1.8.3.4
-