summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Wilson <evan@oliodevices.com>2016-01-08 13:59:04 -0800
committerEvan Wilson <evan@oliodevices.com>2016-01-08 13:59:04 -0800
commit76b2d51f406aebaac61329a7f0831ee69ea6d7a0 (patch)
tree7fc674a1a1c21f80e379850497e7175ac0f699da
parent49c7b2a6eb962e4692fb18dd064da48c7be40208 (diff)
downloadolio-linux-3.10-76b2d51f406aebaac61329a7f0831ee69ea6d7a0.tar.xz
olio-linux-3.10-76b2d51f406aebaac61329a7f0831ee69ea6d7a0.zip
Patch to use local_clock for kernel messages
Change-Id: I96e63d161c8806e962133f4e76d98881f763d9f2
-rw-r--r--kernel/printk.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/kernel/printk.c b/kernel/printk.c
index bf785e0ce73..c247ad5df09 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -258,7 +258,17 @@ static u32 clear_idx;
static char __log_buf[__LOG_BUF_LEN] __aligned(LOG_ALIGN);
static char *log_buf = __log_buf;
static u32 log_buf_len = __LOG_BUF_LEN;
+static u64 print_clock(void)
+{
+ struct timespec ts;
+ u64 ts_nsec = local_clock();
+
+ ts = ns_to_timespec(ts_nsec);
+ monotonic_to_bootbased(&ts);
+ ts_nsec = timespec_to_ns(&ts);
+ return ts_nsec;
+}
/* cpu currently holding logbuf_lock */
static volatile unsigned int logbuf_cpu = UINT_MAX;
@@ -358,7 +368,7 @@ static void log_store(int facility, int level,
if (ts_nsec > 0)
msg->ts_nsec = ts_nsec;
else
- msg->ts_nsec = local_clock();
+ msg->ts_nsec = print_clock(); //local_clock();
memset(log_dict(msg) + dict_len, 0, pad_len);
msg->len = sizeof(struct log) + text_len + dict_len + pad_len;
@@ -1454,7 +1464,7 @@ static bool cont_add(int facility, int level, const char *text, size_t len)
cont.facility = facility;
cont.level = level;
cont.owner = current;
- cont.ts_nsec = local_clock();
+ cont.ts_nsec = print_clock(); //local_clock();
cont.flags = 0;
cont.cons = 0;
cont.flushed = false;