On 2018/11/02 22:36, Peter Zijlstra wrote: > 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. > This API is nothing but a wrapper for reducing frequency of directly calling printk() by using snprintf() if possible. Thus, whatever your earlyprintk stuff is, this API should not affect it.