diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/printk.c | 9 | ||||
| -rw-r--r-- | kernel/time/timekeeping.c | 5 |
2 files changed, 14 insertions, 0 deletions
diff --git a/kernel/printk.c b/kernel/printk.c index 1b76b38986b..e97b94be00d 100644 --- a/kernel/printk.c +++ b/kernel/printk.c @@ -259,6 +259,11 @@ 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 char __olio_log_buf[__LOG_BUF_LEN*4] __aligned(LOG_ALIGN); +static char *olio_log_buf = __olio_log_buf; +static u32 olio_log_buf_len = __LOG_BUF_LEN*4; + /* cpu currently holding logbuf_lock */ static volatile unsigned int logbuf_cpu = UINT_MAX; @@ -1585,6 +1590,10 @@ asmlinkage int vprintk_emit(int facility, int level, #ifdef CONFIG_EARLY_PRINTK_DIRECT printascii(text); #endif + if(olio_log_buf + text_len - __olio_log_buf < __LOG_BUF_LEN){ + memcpy(olio_log_buf, text, text_len); + olio_log_buf += text_len; + } if (level == -1) level = default_message_loglevel; diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index baeeb5c87cf..3644ba5c7d9 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -904,6 +904,7 @@ static void timekeeping_resume(void) raw_spin_lock_irqsave(&timekeeper_lock, flags); write_seqcount_begin(&timekeeper_seq); + printk(KERN_DEBUG "TIME: calc suspend time."); /* * After system resumes, we need to calculate the suspended time and @@ -920,6 +921,7 @@ static void timekeeping_resume(void) cycle_now = clock->read(clock); if ((clock->flags & CLOCK_SOURCE_SUSPEND_NONSTOP) && cycle_now > clock->cycle_last) { + printk(KERN_DEBUG "TIME: Use nonstop clk source."); u64 num, max = ULLONG_MAX; u32 mult = clock->mult; u32 shift = clock->shift; @@ -943,6 +945,7 @@ static void timekeeping_resume(void) ts_delta = ns_to_timespec(nsec); suspendtime_found = true; } else if (timespec_compare(&ts_new, &timekeeping_suspend_time) > 0) { + printk(KERN_DEBUG "TIME: Using other time source."); ts_delta = timespec_sub(ts_new, timekeeping_suspend_time); suspendtime_found = true; } @@ -950,6 +953,7 @@ static void timekeeping_resume(void) if (suspendtime_found) __timekeeping_inject_sleeptime(tk, &ts_delta); + printk(KERN_DEBUG "TIME: Rebase the last cycle value"); /* Re-base the last cycle value */ tk->cycle_last = clock->cycle_last = cycle_now; tk->ntp_error = 0; @@ -958,6 +962,7 @@ static void timekeeping_resume(void) write_seqcount_end(&timekeeper_seq); raw_spin_unlock_irqrestore(&timekeeper_lock, flags); + printk(KERN_DEBUG "TIME: Touch softlockup watchdog"); touch_softlockup_watchdog(); clockevents_notify(CLOCK_EVT_NOTIFY_RESUME, NULL); |