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;