mirror of
https://github.com/adulau/aha.git
synced 2024-12-29 12:16:20 +00:00
[PATCH] Add printk_clock()
ia64's sched_clock() accesses per-cpu data which isn't set up at boot time. Hence ia64 cannot use printk timestamping, because printk() will crash in sched_clock(). So make printk() use printk_clock(), defaulting to sched_clock(), overrideable by the architecture via attribute(weak). Cc: "Luck, Tony" <tony.luck@intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
66dcca0628
commit
31f6d9d628
1 changed files with 6 additions and 1 deletions
|
@ -488,6 +488,11 @@ static int __init printk_time_setup(char *str)
|
||||||
|
|
||||||
__setup("time", printk_time_setup);
|
__setup("time", printk_time_setup);
|
||||||
|
|
||||||
|
__attribute__((weak)) unsigned long long printk_clock(void)
|
||||||
|
{
|
||||||
|
return sched_clock();
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is printk. It can be called from any context. We want it to work.
|
* This is printk. It can be called from any context. We want it to work.
|
||||||
*
|
*
|
||||||
|
@ -565,7 +570,7 @@ asmlinkage int vprintk(const char *fmt, va_list args)
|
||||||
loglev_char = default_message_loglevel
|
loglev_char = default_message_loglevel
|
||||||
+ '0';
|
+ '0';
|
||||||
}
|
}
|
||||||
t = sched_clock();
|
t = printk_clock();
|
||||||
nanosec_rem = do_div(t, 1000000000);
|
nanosec_rem = do_div(t, 1000000000);
|
||||||
tlen = sprintf(tbuf,
|
tlen = sprintf(tbuf,
|
||||||
"<%c>[%5lu.%06lu] ",
|
"<%c>[%5lu.%06lu] ",
|
||||||
|
|
Loading…
Reference in a new issue