summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-01-19 04:20:23 +0100
committerLennart Poettering <lennart@poettering.net>2013-01-19 04:22:09 +0100
commit2e3d069236777cd62f755a02f4a239306b4ad21a (patch)
tree82ffbaaa8b6ebb2ffd90454443cf5b403514afff /src/core
parent610d99284feb9e942bce601c6aac1a5074545e6b (diff)
core: if the bootloader supports it, determine firmware and boot loader delay
This allows us to print simple performance data of all parts of the boot now: - firmware - boot loader - kernel - initrd - userspace This only works for bootloaders which support passing TSC data via EFI variables. As of now that's only gummiboot.
Diffstat (limited to 'src/core')
-rw-r--r--src/core/manager.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/core/manager.c b/src/core/manager.c
index d4afc931f3..aaf66970cf 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -70,6 +70,7 @@
#include "cgroup-util.h"
#include "path-util.h"
#include "audit-fd.h"
+#include "efivars.h"
/* As soon as 16 units are in our GC queue, make sure to run a gc sweep */
#define GC_QUEUE_ENTRIES_MAX 16
@@ -302,6 +303,7 @@ int manager_new(SystemdRunningAs running_as, Manager **_m) {
dual_timestamp_get(&m->userspace_timestamp);
dual_timestamp_from_monotonic(&m->kernel_timestamp, 0);
+ efi_get_boot_timestamps(&m->userspace_timestamp, &m->firmware_timestamp, &m->loader_timestamp);
m->running_as = running_as;
m->name_data_slot = m->conn_data_slot = m->subscribed_data_slot = -1;