diff options
author | Lennart Poettering <lennart@poettering.net> | 2013-01-19 04:20:23 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2013-01-19 04:22:09 +0100 |
commit | 2e3d069236777cd62f755a02f4a239306b4ad21a (patch) | |
tree | 82ffbaaa8b6ebb2ffd90454443cf5b403514afff /src/core/manager.c | |
parent | 610d99284feb9e942bce601c6aac1a5074545e6b (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/manager.c')
-rw-r--r-- | src/core/manager.c | 2 |
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; |