git: 45ae223ac654 - main - msgbuf: Allow microsecond granularity timestamps
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 07 May 2022 15:34:37 UTC
The branch main has been updated by imp:
URL: https://cgit.FreeBSD.org/src/commit/?id=45ae223ac654c0ab6cdc4eaacca693244802383e
commit 45ae223ac654c0ab6cdc4eaacca693244802383e
Author: Warner Losh <imp@FreeBSD.org>
AuthorDate: 2022-05-06 17:31:18 +0000
Commit: Warner Losh <imp@FreeBSD.org>
CommitDate: 2022-05-07 15:32:22 +0000
msgbuf: Allow microsecond granularity timestamps
Today, kern.msgbuf_show_timestamp=1 will give 1 second granularity
timestamps on dmesg lines. When kern.msgbuf_show_timestamp=2, we'll
produce microsecond level graunlarity.
For example:
old (== 1):
[13] Dual Console: Video Primary, Serial Secondary
[14] lo0: link state changed to UP
[15] bxe0: NIC Link is Up, 10000 Mbps full duplex, Flow control: ON - receive & transmit
[15] bxe0: link state changed to UP
new (== 2):
[13.807015] Dual Console: Video Primary, Serial Secondary
[14.544150] lo0: link state changed to UP
[15.272044] bxe0: NIC Link is Up, 10000 Mbps full duplex, Flow control: ON - receive & transmit
[15.272052] bxe0: link state changed to UP
Sponsored by: Netflix
---
sbin/dmesg/dmesg.8 | 5 ++++-
sys/kern/subr_msgbuf.c | 12 ++++++++++--
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/sbin/dmesg/dmesg.8 b/sbin/dmesg/dmesg.8
index 13101baf7e78..a924549264cd 100644
--- a/sbin/dmesg/dmesg.8
+++ b/sbin/dmesg/dmesg.8
@@ -78,7 +78,10 @@ the message buffer:
The default value is shown next to each variable.
.Bl -tag -width indent
.It kern.msgbuf_show_timestamp : No 0
-If set to 1, then a timestamp will be added to most lines in the message buffer.
+If set to 0, no timetamps are added.
+If set to 1, then a 1-second granularity timestamp will be added to most lines
+in the message buffer.
+If set to 2, then a microsecond granularity timestamp will be added.
This may also be set as a boot
.Xr loader 8
tunable.
diff --git a/sys/kern/subr_msgbuf.c b/sys/kern/subr_msgbuf.c
index b41e78dd886e..4664e742c5fb 100644
--- a/sys/kern/subr_msgbuf.c
+++ b/sys/kern/subr_msgbuf.c
@@ -234,8 +234,16 @@ msgbuf_addstr(struct msgbuf *mbp, int pri, const char *str, int filter_cr)
if (msgbuf_show_timestamp && needtime == 1 &&
(mbp->msg_flags & MSGBUF_NEEDNL) == 0) {
- snprintf(buf, sizeof(buf), "[%jd] ",
- (intmax_t)time_uptime);
+ if (msgbuf_show_timestamp == 1) {
+ snprintf(buf, sizeof(buf), "[%jd] ",
+ (intmax_t)time_uptime);
+ } else {
+ struct timeval tv;
+
+ microuptime(&tv);
+ snprintf(buf, sizeof(buf), "[%jd.%06d] ",
+ (intmax_t)tv.tv_sec, (int)tv.tv_usec);
+ }
for (j = 0; buf[j] != '\0'; j++)
msgbuf_do_addchar(mbp, buf[j]);
needtime = 0;