1
0
mirror of https://github.com/systemd/systemd synced 2024-07-01 07:34:28 +00:00

journal: drop mapping from CLOCK_BOOTTIME -> CLOCK_MONOTONIC

This partially reverts commit a9357c2ce2.

Some kmsg sent before sleep may be received by systemd-journald after
sleep. In that case, map_clock_usec() does not provide correct
timestamp.
So, we cannot provide reliable _SOURCE_MONOTONIC_TIMESTAMP.
This commit is contained in:
Yu Watanabe 2024-06-20 00:07:36 +09:00
parent c7dd491d66
commit 461e4656e7

View File

@ -258,11 +258,9 @@ void dev_kmsg_record(Server *s, char *p, size_t l) {
iovec[n++] = IOVEC_MAKE_STRING(source_boot_time);
/* Historically, we stored the timestamp 'usec' as _SOURCE_MONOTONIC_TIMESTAMP, so we cannot remove
* the field as it is already used in other projects. So, let's store the correct timestamp here by
* mapping the boottime to monotonic. Then, the existence of _SOURCE_BOOTTIME_TIMESTAMP indicates
* the reliability of _SOURCE_MONOTONIC_TIMESTAMP field. */
* the field as it is already used in other projects. This is for backward compatibility. */
char source_monotonic_time[STRLEN("_SOURCE_MONOTONIC_TIMESTAMP=") + DECIMAL_STR_MAX(unsigned long long)];
xsprintf(source_monotonic_time, "_SOURCE_MONOTONIC_TIMESTAMP="USEC_FMT, map_clock_usec(usec, CLOCK_BOOTTIME, CLOCK_MONOTONIC));
xsprintf(source_monotonic_time, "_SOURCE_MONOTONIC_TIMESTAMP=%llu", usec);
iovec[n++] = IOVEC_MAKE_STRING(source_monotonic_time);
iovec[n++] = IOVEC_MAKE_STRING("_TRANSPORT=kernel");