Re: [PATCH 3/3] lockdep: Use line-buffered printk() for lockdep messages.

From: Peter Zijlstra
Date: Fri Nov 02 2018 - 09:36:46 EST


On Fri, Nov 02, 2018 at 10:31:57PM +0900, Tetsuo Handa wrote:
> syzbot is sometimes getting mixed output like below due to concurrent
> printk(). Mitigate such output by using line-buffered printk() API.
>
> RCU used illegally from idle CPU!
> rcu_scheduler_active = 2, debug_locks = 1
> RSP: 0018:ffffffff88007bb8 EFLAGS: 00000286
> RCU used illegally from extended quiescent state!
> ORIG_RAX: ffffffffffffff13
> 1 lock held by swapper/1/0:
> RAX: dffffc0000000000 RBX: 1ffffffff1000f7b RCX: 0000000000000000
> #0:
> RDX: 1ffffffff10237b8 RSI: 0000000000000001 RDI: ffffffff8811bdc0
> 000000004b34587c
> RBP: ffffffff88007bb8 R08: ffffffff88075e00 R09: 0000000000000000
> (
> R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
> rcu_read_lock
> R13: ffffffff88007c78 R14: 0000000000000000 R15: 0000000000000000
> ){....}
> arch_safe_halt arch/x86/include/asm/paravirt.h:94 [inline]
> default_idle+0xc2/0x410 arch/x86/kernel/process.c:498
> , at: trace_call_bpf+0xf8/0x640 kernel/trace/bpf_trace.c:46

WTH is that buffered aPI, and no, that breaks my earlyprintk stuff.