[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAADnVQL6Q3k0+-5X3Xjov7W_xESxkmVXcsCxQRWitQvhTBsf7A@mail.gmail.com>
Date: Wed, 20 Mar 2024 00:12:19 -0700
From: Alexei Starovoitov <alexei.starovoitov@...il.com>
To: Tetsuo Handa <penguin-kernel@...ove.sakura.ne.jp>
Cc: syzbot <syzbot+f78380e4eae53c64125c@...kaller.appspotmail.com>,
syzkaller-bugs <syzkaller-bugs@...glegroups.com>, Alexei Starovoitov <ast@...nel.org>,
Daniel Borkmann <daniel@...earbox.net>, John Fastabend <john.fastabend@...il.com>,
Petr Mladek <pmladek@...e.com>, Steven Rostedt <rostedt@...dmis.org>,
John Ogness <john.ogness@...utronix.de>, Sergey Senozhatsky <senozhatsky@...omium.org>,
Thomas Gleixner <tglx@...utronix.de>, LKML <linux-kernel@...r.kernel.org>,
bpf <bpf@...r.kernel.org>
Subject: Re: [syzbot] [kernel?] possible deadlock in console_flush_all (2)
On Wed, Mar 20, 2024 at 12:05 AM Tetsuo Handa
<penguin-kernel@...ove.sakura.ne.jp> wrote:
>
> On 2024/03/20 15:56, Alexei Starovoitov wrote:
> > This has nothing to do with bpf.
> > bpf never calls printk().
>
> Please see the Sample crash report in the dashboard.
> bpf program is hitting printk() via report_bug().
Exactly. local_bh_neable is simply asking for a splat.
_this_ bug is in printk.
It's a generic issue.
sockmap bug is orthogonal.
It's already being looked at.
> -> #0 (console_owner){....}-{0:0}:
> check_prev_add kernel/locking/lockdep.c:3134 [inline]
> check_prevs_add kernel/locking/lockdep.c:3253 [inline]
> validate_chain+0x18cb/0x58e0 kernel/locking/lockdep.c:3869
> __lock_acquire+0x1346/0x1fd0 kernel/locking/lockdep.c:5137
> lock_acquire+0x1e4/0x530 kernel/locking/lockdep.c:5754
> console_lock_spinning_enable kernel/printk/printk.c:1873 [inline]
> console_emit_next_record kernel/printk/printk.c:2901 [inline]
> console_flush_all+0x810/0xfd0 kernel/printk/printk.c:2973
> console_unlock+0x13b/0x4d0 kernel/printk/printk.c:3042
> vprintk_emit+0x5a6/0x770 kernel/printk/printk.c:2342
> _printk+0xd5/0x120 kernel/printk/printk.c:2367
> __report_bug lib/bug.c:195 [inline]
> report_bug+0x346/0x500 lib/bug.c:219
> handle_bug+0x3e/0x70 arch/x86/kernel/traps.c:239
> exc_invalid_op+0x1a/0x50 arch/x86/kernel/traps.c:260
> asm_exc_invalid_op+0x1a/0x20 arch/x86/include/asm/idtentry.h:621
> __local_bh_enable_ip+0x1be/0x200 kernel/softirq.c:362
> spin_unlock_bh include/linux/spinlock.h:396 [inline]
> __sock_map_delete net/core/sock_map.c:424 [inline]
> sock_map_delete_elem+0xca/0x140 net/core/sock_map.c:446
> bpf_prog_2c29ac5cdc6b1842+0x42/0x46
> bpf_dispatcher_nop_func include/linux/bpf.h:1234 [inline]
> __bpf_prog_run include/linux/filter.h:657 [inline]
> bpf_prog_run include/linux/filter.h:664 [inline]
> __bpf_trace_run kernel/trace/bpf_trace.c:2381 [inline]
> bpf_trace_run4+0x25a/0x490 kernel/trace/bpf_trace.c:2422
> trace_sched_switch include/trace/events/sched.h:222 [inline]
> __schedule+0x250b/0x49d0 kernel/sched/core.c:6733
> __schedule_loop kernel/sched/core.c:6813 [inline]
> schedule+0x14b/0x320 kernel/sched/core.c:6828
> ptrace_stop+0x5b4/0x940 kernel/signal.c:2358
> ptrace_do_notify kernel/signal.c:2395 [inline]
> ptrace_notify+0x255/0x380 kernel/signal.c:2407
> ptrace_report_syscall include/linux/ptrace.h:415 [inline]
> ptrace_report_syscall_exit include/linux/ptrace.h:477 [inline]
> syscall_exit_work+0xbd/0x170 kernel/entry/common.c:167
> syscall_exit_to_user_mode_prepare kernel/entry/common.c:194 [inline]
> __syscall_exit_to_user_mode_work kernel/entry/common.c:199 [inline]
> syscall_exit_to_user_mode+0x273/0x360 kernel/entry/common.c:212
> do_syscall_64+0x10a/0x240 arch/x86/entry/common.c:89
> entry_SYSCALL_64_after_hwframe+0x6d/0x75
>
>
Powered by blists - more mailing lists