From: Yonghong Song <yonghong.song@linux.dev>
To: syzbot <syzbot+b0cff308140f79a9c4cb@syzkaller.appspotmail.com>,
andrii@kernel.org, ast@kernel.org, bpf@vger.kernel.org,
chandna.sahil@gmail.com, daniel@iogearbox.net, eddyz87@gmail.com,
haoluo@google.com, john.fastabend@gmail.com, jolsa@kernel.org,
kpsingh@kernel.org, linux-kernel@vger.kernel.org,
listout@listout.xyz, martin.lau@linux.dev,
netdev@vger.kernel.org, sdf@fomichev.me, song@kernel.org,
syzkaller-bugs@googlegroups.com
Subject: Re: [syzbot] [bpf?] WARNING in bpf_bprintf_prepare (3)
Date: Wed, 22 Oct 2025 09:57:22 -0700 [thread overview]
Message-ID: <14371cf8-e49a-4c68-b763-fa7563a9c764@linux.dev> (raw)
In-Reply-To: <68f6a4c8.050a0220.1be48.0011.GAE@google.com>
On 10/20/25 2:08 PM, syzbot wrote:
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: a1e83d4c0361 selftests/bpf: Fix redefinition of 'off' as d..
> git tree: bpf
> console output: https://syzkaller.appspot.com/x/log.txt?x=12d21de2580000
> kernel config: https://syzkaller.appspot.com/x/.config?x=9ad7b090a18654a7
> dashboard link: https://syzkaller.appspot.com/bug?extid=b0cff308140f79a9c4cb
> compiler: Debian clang version 20.1.8 (++20250708063551+0c9f909b7976-1~exp1~20250708183702.136), Debian LLD 20.1.8
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=160cf542580000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=128d5c58580000
>
> Downloadable assets:
> disk image: https://storage.googleapis.com/syzbot-assets/2f6a7a0cd1b7/disk-a1e83d4c.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/873984cfc71e/vmlinux-a1e83d4c.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/16711d84070c/bzImage-a1e83d4c.xz
>
> The issue was bisected to:
>
> commit 7c33e97a6ef5d84e98b892c3e00c6d1678d20395
> Author: Sahil Chandna <chandna.sahil@gmail.com>
> Date: Tue Oct 14 18:56:35 2025 +0000
>
> bpf: Do not disable preemption in bpf_test_run().
>
> bisection log: https://syzkaller.appspot.com/x/bisect.txt?x=172fe492580000
> final oops: https://syzkaller.appspot.com/x/report.txt?x=14afe492580000
> console output: https://syzkaller.appspot.com/x/log.txt?x=10afe492580000
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+b0cff308140f79a9c4cb@syzkaller.appspotmail.com
> Fixes: 7c33e97a6ef5 ("bpf: Do not disable preemption in bpf_test_run().")
>
> ------------[ cut here ]------------
> WARNING: CPU: 1 PID: 6145 at kernel/bpf/helpers.c:781 bpf_try_get_buffers kernel/bpf/helpers.c:781 [inline]
> WARNING: CPU: 1 PID: 6145 at kernel/bpf/helpers.c:781 bpf_bprintf_prepare+0x12cf/0x13a0 kernel/bpf/helpers.c:834
Okay, the warning is due to the following WARN_ON_ONCE:
static DEFINE_PER_CPU(struct bpf_bprintf_buffers[MAX_BPRINTF_NEST_LEVEL], bpf_bprintf_bufs);
static DEFINE_PER_CPU(int, bpf_bprintf_nest_level);
int bpf_try_get_buffers(struct bpf_bprintf_buffers **bufs)
{
int nest_level;
nest_level = this_cpu_inc_return(bpf_bprintf_nest_level);
if (WARN_ON_ONCE(nest_level > MAX_BPRINTF_NEST_LEVEL)) {
this_cpu_dec(bpf_bprintf_nest_level);
return -EBUSY;
}
*bufs = this_cpu_ptr(&bpf_bprintf_bufs[nest_level - 1]);
return 0;
}
Basically without preempt disable, at process level, it is possible
more than one process may trying to take bpf_bprintf_buffers.
Adding softirq and nmi, it is totally likely to have more than 3
level for buffers. Also, more than one process with bpf_bprintf_buffers
will cause problem in releasing buffers, so we need to have
preempt_disable surrounding bpf_try_get_buffers() and
bpf_put_buffers().
There are some kfuncs/helpers need such preempt_disable
protection, e.g. bpf_stream_printk, bpf_snprintf,
bpf_trace_printk, bpf_trace_vprintk, bpf_seq_printf.
But please double check.
> Modules linked in:
> CPU: 1 UID: 0 PID: 6145 Comm: syz.4.53 Not tainted syzkaller #0 PREEMPT(full)
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025
> RIP: 0010:bpf_try_get_buffers kernel/bpf/helpers.c:781 [inline]
> RIP: 0010:bpf_bprintf_prepare+0x12cf/0x13a0 kernel/bpf/helpers.c:834
> Code: ff e9 ce fe ff ff e8 10 ec e0 ff e9 be fe ff ff e8 06 ec e0 ff e9 b4 fe ff ff e8 fc eb e0 ff e9 aa fe ff ff e8 f2 eb e0 ff 90 <0f> 0b 90 65 ff 0d 27 fd b2 10 b8 f0 ff ff ff e9 17 ff ff ff e8 d8
> RSP: 0018:ffffc90003797840 EFLAGS: 00010293
> RAX: ffffffff81df57fe RBX: ffffc90003797a10 RCX: ffff888026493c80
> RDX: 0000000000000000 RSI: 0000000000000004 RDI: 0000000000000003
> RBP: ffffc90003797970 R08: 0000000000585870 R09: 0000000000000005
> R10: dffffc0000000000 R11: fffff520006f2f20 R12: dffffc0000000000
> R13: 0000000000000004 R14: 0000000000000003 R15: 1ffff920006f2f42
> FS: 00005555805f5500(0000) GS:ffff888125e0c000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 0000000000000000 CR3: 000000007c04e000 CR4: 00000000003526f0
> Call Trace:
> <TASK>
> ____bpf_trace_printk kernel/trace/bpf_trace.c:372 [inline]
> bpf_trace_printk+0xdb/0x190 kernel/trace/bpf_trace.c:362
> bpf_prog_bfbd7bf4bf171090+0x41/0x5a
> bpf_dispatcher_nop_func include/linux/bpf.h:1350 [inline]
> __bpf_prog_run include/linux/filter.h:721 [inline]
> bpf_prog_run include/linux/filter.h:728 [inline]
> bpf_prog_run_pin_on_cpu include/linux/filter.h:745 [inline]
> bpf_flow_dissect+0x225/0x720 net/core/flow_dissector.c:1024
> bpf_prog_test_run_flow_dissector+0x37c/0x5c0 net/bpf/test_run.c:1414
> bpf_prog_test_run+0x2c7/0x340 kernel/bpf/syscall.c:4688
> __sys_bpf+0x562/0x860 kernel/bpf/syscall.c:6167
> __do_sys_bpf kernel/bpf/syscall.c:6259 [inline]
> __se_sys_bpf kernel/bpf/syscall.c:6257 [inline]
> __x64_sys_bpf+0x7c/0x90 kernel/bpf/syscall.c:6257
> do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
> do_syscall_64+0xfa/0xfa0 arch/x86/entry/syscall_64.c:94
> entry_SYSCALL_64_after_hwframe+0x77/0x7f
> RIP: 0033:0x7f25b0f8efc9
> Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48
> RSP: 002b:00007ffe036cd5e8 EFLAGS: 00000246 ORIG_RAX: 0000000000000141
> RAX: ffffffffffffffda RBX: 00007f25b11e5fa0 RCX: 00007f25b0f8efc9
> RDX: 0000000000000050 RSI: 0000200000000180 RDI: 000000000000000a
> RBP: 00007f25b1011f91 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
> R13: 00007f25b11e5fa0 R14: 00007f25b11e5fa0 R15: 0000000000000003
> </TASK>
>
>
> ---
> This report is generated by a bot. It may contain errors.
> See https://goo.gl/tpsmEJ for more information about syzbot.
> syzbot engineers can be reached at syzkaller@googlegroups.com.
>
> syzbot will keep track of this issue. See:
> https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
> For information about bisection process see: https://goo.gl/tpsmEJ#bisection
>
> If the report is already addressed, let syzbot know by replying with:
> #syz fix: exact-commit-title
>
> If you want syzbot to run the reproducer, reply with:
> #syz test: git://repo/address.git branch-or-commit-hash
> If you attach or paste a git patch, syzbot will apply it before testing.
>
> If you want to overwrite report's subsystems, reply with:
> #syz set subsystems: new-subsystem
> (See the list of subsystem names on the web dashboard)
>
> If the report is a duplicate of another one, reply with:
> #syz dup: exact-subject-of-another-report
>
> If you want to undo deduplication, reply with:
> #syz undup
next prev parent reply other threads:[~2025-10-22 16:57 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-20 21:08 [syzbot] [bpf?] WARNING in bpf_bprintf_prepare (3) syzbot
2025-10-21 6:49 ` Forwarded: " syzbot
2025-10-21 9:53 ` syzbot
2025-10-21 9:56 ` syzbot
2025-10-21 16:26 ` syzbot
2025-10-22 16:57 ` Yonghong Song [this message]
2025-10-22 18:40 ` Sahil Chandna
2025-10-22 19:56 ` Yonghong Song
2025-10-26 20:05 ` Sahil Chandna
2025-10-28 3:45 ` Yonghong Song
2025-10-28 7:52 ` Sebastian Andrzej Siewior
2025-10-29 11:22 ` Sahil Chandna
2025-10-29 11:28 ` Sebastian Andrzej Siewior
2025-10-29 15:26 ` Yonghong Song
2025-10-30 8:50 ` Tao Chen
2025-10-30 15:52 ` Yonghong Song
2025-11-03 1:49 ` Sahil Chandna
2025-11-03 4:39 ` Yonghong Song
[not found] <aPcr6a85v8iuurqW@chandna.localdomain>
2025-10-21 7:03 ` syzbot
[not found] <wqkakifycanfamcfrznmrgy6wmuxqd6gcwl636mgcddwmg3wlv@spos7m2vkpbu>
2025-10-21 11:45 ` syzbot
[not found] <4r32bnxsz725hnafeqqabxx2fcc7z2s7tfleu2bjwrcshvmn5y@nigyy2bomc5z>
2025-10-21 13:30 ` syzbot
[not found] <aPe0RRti8OSpeCEL@chandna.localdomain>
2025-10-21 17:55 ` syzbot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=14371cf8-e49a-4c68-b763-fa7563a9c764@linux.dev \
--to=yonghong.song@linux.dev \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=chandna.sahil@gmail.com \
--cc=daniel@iogearbox.net \
--cc=eddyz87@gmail.com \
--cc=haoluo@google.com \
--cc=john.fastabend@gmail.com \
--cc=jolsa@kernel.org \
--cc=kpsingh@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=listout@listout.xyz \
--cc=martin.lau@linux.dev \
--cc=netdev@vger.kernel.org \
--cc=sdf@fomichev.me \
--cc=song@kernel.org \
--cc=syzbot+b0cff308140f79a9c4cb@syzkaller.appspotmail.com \
--cc=syzkaller-bugs@googlegroups.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.