forked from rsyslog/rsyslog
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
imkmsg: add params parseKernelTimestamp and fixKernelTimeStamp
... as module parameters. Here, "parseKernelTimestamp" is modelled after the same param from imklog. In essence, it permits to ignore all kernel time stamps and use current time instead. Parameter fixKernelTimeStamp uses the kernel time stamp during the initial read loop of /dev/kmsg, but replaced it later ignores it for later reads. The reasoning at least for the later is given in a sysklogd commit by Joachim Wiberg, which we reproduce here to have a stable reference. The commit itself can be found for example at: troglobit/sysklogd@9f6fbb3 ============== QUOTE =============== The spec[1] says the /dev/kmsg timestamp is a monotonic clock and in microseconds. After a while you realize it's also relative to the boot of the system, that fact was probably too obvious to be put in the spec. However, what's *not* in the spec, and what takes a while to realize, is that this monotonic time is *not* adjusted for suspend/resume cycles ... On a frequently used laptop this can manifest itself as follows. The kernel is stuck on Nov 15, and for the life of me I cannot find any to adjust for this offset: $ dmesg -T |tail -1; date [Mon Nov 15 01:42:08 2021] wlan0: Limiting TX power to 23 (23 - 0) dBm as advertised by 18:e8:29:55:b0:62 Tue 23 Nov 2021 05:20:53 PM CET Hence this patch. After initial "emptying" of /dev/kmsg when syslogd starts up, we raise a flag (denoting done with backlog), and after this point we ignore the kernel's idea of time and replace it with the actual time we have now, the same that userspace messages are logged with. Sure, there will be occasions where there's a LOT of kernel messages to read and we won't be able to keep track. Yet, this patch is better than the current state (where we log Nov 15). [1]: https://www.kernel.org/doc/Documentation/ABI/testing/dev-kmsg ===========END QUOTE =============== closes rsyslog#4561 closes rsyslog#5161
- Loading branch information
Showing
3 changed files
with
115 additions
and
32 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
a6a60c3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regarding old messages: troglobit/sysklogd#29 and beyond.
(Note to self:
Do not comment commits because of isaacs/github#1526.It finally appeared in subscriptions. o_O)