]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Revert "boot-timestamps: Discard firmware init time when running in a VM"
authorLennart Poettering <lennart@poettering.net>
Thu, 3 Feb 2022 11:06:54 +0000 (12:06 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 8 Feb 2022 12:45:49 +0000 (13:45 +0100)
This reverts commit f699bd81e8e18da2d2fc11e7fb7dce95f8bb3f9e (#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.

src/shared/boot-timestamps.c

index e00b37aa327750d5b8faba3384b89ef3b00dcf9d..8786e89c0eeda16bd3e90a87a300733c0bd1baa6 100644 (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;