1
0
mirror of https://github.com/systemd/systemd.git synced 2024-10-30 06:25:37 +03:00

Revert "boot-timestamps: Discard firmware init time when running in a VM"

This reverts commit f699bd81e8 (#22063)

We should suppress the TSC data when we generate it if we assume its
invalid, not when we consume it, because at that point we don't even
know if the data stems from TSC or something else.
This commit is contained in:
Lennart Poettering 2022-02-03 12:06:54 +01:00
parent fa16642f4a
commit 9b176fbdc0

View File

@ -5,13 +5,11 @@
#include "efi-loader.h"
#include "macro.h"
#include "time-util.h"
#include "virt.h"
int boot_timestamps(const dual_timestamp *n, dual_timestamp *firmware, dual_timestamp *loader) {
usec_t x = 0, y = 0, a;
int r;
dual_timestamp _n;
bool use_firmware = true;
assert(firmware);
assert(loader);
@ -26,10 +24,6 @@ int boot_timestamps(const dual_timestamp *n, dual_timestamp *firmware, dual_time
r = efi_loader_get_boot_usec(&x, &y);
if (r < 0)
return r;
/* If we are running in a VM, the init timestamp would
* be equivalent to the host uptime. */
use_firmware = detect_vm() <= 0;
}
/* Let's convert this to timestamps where the firmware
@ -39,14 +33,12 @@ int boot_timestamps(const dual_timestamp *n, dual_timestamp *firmware, dual_time
* the monotonic timestamps here as negative of the actual
* value. */
if (use_firmware) {
firmware->monotonic = y;
a = n->monotonic + firmware->monotonic;
firmware->realtime = n->realtime > a ? n->realtime - a : 0;
} else
firmware->monotonic = firmware->realtime = 0;
firmware->monotonic = y;
loader->monotonic = y - x;
a = n->monotonic + firmware->monotonic;
firmware->realtime = n->realtime > a ? n->realtime - a : 0;
a = n->monotonic + loader->monotonic;
loader->realtime = n->realtime > a ? n->realtime - a : 0;