From 44df3e637fdf39b34af841fede9d2edc6172a5cc Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 16 Apr 2013 20:29:59 -0400 Subject: [PATCH] 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 :) --- src/core/manager.c | 6 ++++-- src/shared/virt.c | 4 +--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/core/manager.c b/src/core/manager.c index f8d097e36..1ee6a8ed5 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 fddb45d6e..7b18e58c1 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; } -- 2.30.2