summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2013-04-16 20:29:59 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2013-04-17 00:09:16 -0400
commit44df3e637fdf39b34af841fede9d2edc6172a5cc (patch)
tree5440a629ee9604b08ee17c347f718c10dc72bb8c
parentcaffaf5859f2fda2116ecc403b4411531b4b6678 (diff)
systemd: ignore hw timestamps in containers
They are irrelevant and misleading. E.g. systemd-analyze: Startup finished in 6d 4h 15min 32.330s (kernel) + 49ms 914us (userspace) = 6d 4h 15min 32.380s becomes Startup finished in 53.735ms (userspace) = 53.735ms which looks much better :)
-rw-r--r--src/core/manager.c6
-rw-r--r--src/shared/virt.c4
2 files changed, 5 insertions, 5 deletions
diff --git a/src/core/manager.c b/src/core/manager.c
index f8d097e368..1ee6a8ed53 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -441,10 +441,12 @@ int manager_new(SystemdRunningAs running_as, Manager **_m) {
return -ENOMEM;
dual_timestamp_get(&m->userspace_timestamp);
- dual_timestamp_from_monotonic(&m->kernel_timestamp, 0);
+ if (detect_container(NULL) <= 0) {
+ dual_timestamp_from_monotonic(&m->kernel_timestamp, 0);
#ifdef ENABLE_EFI
- efi_get_boot_timestamps(&m->userspace_timestamp, &m->firmware_timestamp, &m->loader_timestamp);
+ efi_get_boot_timestamps(&m->userspace_timestamp, &m->firmware_timestamp, &m->loader_timestamp);
#endif
+ }
m->running_as = running_as;
m->name_data_slot = m->conn_data_slot = m->subscribed_data_slot = -1;
diff --git a/src/shared/virt.c b/src/shared/virt.c
index fddb45d6e8..7b18e58c16 100644
--- a/src/shared/virt.c
+++ b/src/shared/virt.c
@@ -168,7 +168,7 @@ int detect_vm(const char **id) {
}
int detect_container(const char **id) {
- char *e = NULL;
+ char _cleanup_free_ *e = NULL;
int r;
/* Unfortunately many of these operations require root access
@@ -216,8 +216,6 @@ int detect_container(const char **id) {
*id = "other";
}
- free(e);
-
return r;
}