]> git.baikalelectronics.ru Git - kernel.git/commit
printk: Wake up klogd using irq_work
authorFrederic Weisbecker <fweisbec@gmail.com>
Fri, 12 Oct 2012 16:00:23 +0000 (18:00 +0200)
committerFrederic Weisbecker <fweisbec@gmail.com>
Sun, 18 Nov 2012 00:01:49 +0000 (01:01 +0100)
commit813b3d9649a00b3c94a064b699582c401d35ea9c
tree06ed1cff8a92b0c687a7ff2fe31c19e8249bbe3c
parentd1c1e4256df118a98c86e448b90403aafd78c899
printk: Wake up klogd using irq_work

klogd is woken up asynchronously from the tick in order
to do it safely.

However if printk is called when the tick is stopped, the reader
won't be woken up until the next interrupt, which might not fire
for a while. As a result, the user may miss some message.

To fix this, lets implement the printk tick using a lazy irq work.
This subsystem takes care of the timer tick state and can
fix up accordingly.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
include/linux/printk.h
init/Kconfig
kernel/printk.c
kernel/time/tick-sched.c
kernel/timer.c