* [syzbot] [bpf?] KCSAN: data-race in __mod_timer / kvfree_call_rcu @ 2024-10-14 6:07 syzbot 2024-10-14 8:27 ` Dmitry Vyukov 0 siblings, 1 reply; 5+ messages in thread From: syzbot @ 2024-10-14 6:07 UTC (permalink / raw) To: andrii, ast, bpf, daniel, eddyz87, haoluo, john.fastabend, jolsa, kpsingh, linux-kernel, martin.lau, sdf, song, syzkaller-bugs, yonghong.song Hello, syzbot found the following issue on: HEAD commit: 5b7c893ed5ed Merge tag 'ntfs3_for_6.12' of https://github... git tree: upstream console output: https://syzkaller.appspot.com/x/log.txt?x=148ae327980000 kernel config: https://syzkaller.appspot.com/x/.config?x=a2f7ae2f221e9eae dashboard link: https://syzkaller.appspot.com/bug?extid=061d370693bdd99f9d34 compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 Unfortunately, I don't have any reproducer for this issue yet. Downloadable assets: disk image: https://storage.googleapis.com/syzbot-assets/79bb9e82835a/disk-5b7c893e.raw.xz vmlinux: https://storage.googleapis.com/syzbot-assets/5931997fd31c/vmlinux-5b7c893e.xz kernel image: https://storage.googleapis.com/syzbot-assets/fc8cc3d97b18/bzImage-5b7c893e.xz IMPORTANT: if you fix the issue, please add the following tag to the commit: Reported-by: syzbot+061d370693bdd99f9d34@syzkaller.appspotmail.com ================================================================== BUG: KCSAN: data-race in __mod_timer / kvfree_call_rcu read to 0xffff888237d1cce8 of 8 bytes by task 10149 on cpu 1: schedule_delayed_monitor_work kernel/rcu/tree.c:3520 [inline] kvfree_call_rcu+0x3b8/0x510 kernel/rcu/tree.c:3839 trie_update_elem+0x47c/0x620 kernel/bpf/lpm_trie.c:441 bpf_map_update_value+0x324/0x350 kernel/bpf/syscall.c:203 generic_map_update_batch+0x401/0x520 kernel/bpf/syscall.c:1849 bpf_map_do_batch+0x28c/0x3f0 kernel/bpf/syscall.c:5143 __sys_bpf+0x2e5/0x7a0 __do_sys_bpf kernel/bpf/syscall.c:5741 [inline] __se_sys_bpf kernel/bpf/syscall.c:5739 [inline] __x64_sys_bpf+0x43/0x50 kernel/bpf/syscall.c:5739 x64_sys_call+0x2625/0x2d60 arch/x86/include/generated/asm/syscalls_64.h:322 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xc9/0x1c0 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f write to 0xffff888237d1cce8 of 8 bytes by task 56 on cpu 0: __mod_timer+0x578/0x7f0 kernel/time/timer.c:1173 add_timer_global+0x51/0x70 kernel/time/timer.c:1330 __queue_delayed_work+0x127/0x1a0 kernel/workqueue.c:2523 queue_delayed_work_on+0xdf/0x190 kernel/workqueue.c:2552 queue_delayed_work include/linux/workqueue.h:677 [inline] schedule_delayed_monitor_work kernel/rcu/tree.c:3525 [inline] kfree_rcu_monitor+0x5e8/0x660 kernel/rcu/tree.c:3643 process_one_work kernel/workqueue.c:3229 [inline] process_scheduled_works+0x483/0x9a0 kernel/workqueue.c:3310 worker_thread+0x51d/0x6f0 kernel/workqueue.c:3391 kthread+0x1d1/0x210 kernel/kthread.c:389 ret_from_fork+0x4b/0x60 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 Reported by Kernel Concurrency Sanitizer on: CPU: 0 UID: 0 PID: 56 Comm: kworker/u8:4 Not tainted 6.12.0-rc2-syzkaller-00050-g5b7c893ed5ed #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Workqueue: events_unbound kfree_rcu_monitor ================================================================== bridge0: port 2(bridge_slave_1) entered blocking state bridge0: port 2(bridge_slave_1) entered forwarding state --- 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. If the report is already addressed, let syzbot know by replying with: #syz fix: exact-commit-title 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 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [syzbot] [bpf?] KCSAN: data-race in __mod_timer / kvfree_call_rcu 2024-10-14 6:07 [syzbot] [bpf?] KCSAN: data-race in __mod_timer / kvfree_call_rcu syzbot @ 2024-10-14 8:27 ` Dmitry Vyukov 2024-10-14 17:00 ` Paul E. McKenney 0 siblings, 1 reply; 5+ messages in thread From: Dmitry Vyukov @ 2024-10-14 8:27 UTC (permalink / raw) To: syzbot, Paul E. McKenney, Frederic Weisbecker, Neeraj Upadhyay, Joel Fernandes, Josh Triplett, Boqun Feng, RCU, Marco Elver Cc: andrii, ast, bpf, daniel, eddyz87, haoluo, john.fastabend, jolsa, kpsingh, linux-kernel, martin.lau, sdf, song, syzkaller-bugs, yonghong.song On Mon, 14 Oct 2024 at 08:07, syzbot <syzbot+061d370693bdd99f9d34@syzkaller.appspotmail.com> wrote: > > Hello, > > syzbot found the following issue on: > > HEAD commit: 5b7c893ed5ed Merge tag 'ntfs3_for_6.12' of https://github... > git tree: upstream > console output: https://syzkaller.appspot.com/x/log.txt?x=148ae327980000 > kernel config: https://syzkaller.appspot.com/x/.config?x=a2f7ae2f221e9eae > dashboard link: https://syzkaller.appspot.com/bug?extid=061d370693bdd99f9d34 > compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 > > Unfortunately, I don't have any reproducer for this issue yet. > > Downloadable assets: > disk image: https://storage.googleapis.com/syzbot-assets/79bb9e82835a/disk-5b7c893e.raw.xz > vmlinux: https://storage.googleapis.com/syzbot-assets/5931997fd31c/vmlinux-5b7c893e.xz > kernel image: https://storage.googleapis.com/syzbot-assets/fc8cc3d97b18/bzImage-5b7c893e.xz > > IMPORTANT: if you fix the issue, please add the following tag to the commit: > Reported-by: syzbot+061d370693bdd99f9d34@syzkaller.appspotmail.com > > ================================================================== > BUG: KCSAN: data-race in __mod_timer / kvfree_call_rcu > > read to 0xffff888237d1cce8 of 8 bytes by task 10149 on cpu 1: > schedule_delayed_monitor_work kernel/rcu/tree.c:3520 [inline] +rcu maintainers, this looks more like rcu issue #syz set subsystems: rcu > kvfree_call_rcu+0x3b8/0x510 kernel/rcu/tree.c:3839 > trie_update_elem+0x47c/0x620 kernel/bpf/lpm_trie.c:441 > bpf_map_update_value+0x324/0x350 kernel/bpf/syscall.c:203 > generic_map_update_batch+0x401/0x520 kernel/bpf/syscall.c:1849 > bpf_map_do_batch+0x28c/0x3f0 kernel/bpf/syscall.c:5143 > __sys_bpf+0x2e5/0x7a0 > __do_sys_bpf kernel/bpf/syscall.c:5741 [inline] > __se_sys_bpf kernel/bpf/syscall.c:5739 [inline] > __x64_sys_bpf+0x43/0x50 kernel/bpf/syscall.c:5739 > x64_sys_call+0x2625/0x2d60 arch/x86/include/generated/asm/syscalls_64.h:322 > do_syscall_x64 arch/x86/entry/common.c:52 [inline] > do_syscall_64+0xc9/0x1c0 arch/x86/entry/common.c:83 > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > write to 0xffff888237d1cce8 of 8 bytes by task 56 on cpu 0: > __mod_timer+0x578/0x7f0 kernel/time/timer.c:1173 > add_timer_global+0x51/0x70 kernel/time/timer.c:1330 > __queue_delayed_work+0x127/0x1a0 kernel/workqueue.c:2523 > queue_delayed_work_on+0xdf/0x190 kernel/workqueue.c:2552 > queue_delayed_work include/linux/workqueue.h:677 [inline] > schedule_delayed_monitor_work kernel/rcu/tree.c:3525 [inline] > kfree_rcu_monitor+0x5e8/0x660 kernel/rcu/tree.c:3643 > process_one_work kernel/workqueue.c:3229 [inline] > process_scheduled_works+0x483/0x9a0 kernel/workqueue.c:3310 > worker_thread+0x51d/0x6f0 kernel/workqueue.c:3391 > kthread+0x1d1/0x210 kernel/kthread.c:389 > ret_from_fork+0x4b/0x60 arch/x86/kernel/process.c:147 > ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 > > Reported by Kernel Concurrency Sanitizer on: > CPU: 0 UID: 0 PID: 56 Comm: kworker/u8:4 Not tainted 6.12.0-rc2-syzkaller-00050-g5b7c893ed5ed #0 > Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 > Workqueue: events_unbound kfree_rcu_monitor > ================================================================== > bridge0: port 2(bridge_slave_1) entered blocking state > bridge0: port 2(bridge_slave_1) entered forwarding state > > > --- > 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. > > If the report is already addressed, let syzbot know by replying with: > #syz fix: exact-commit-title > > 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 > > -- > You received this message because you are subscribed to the Google Groups "syzkaller-bugs" group. > To unsubscribe from this group and stop receiving emails from it, send an email to syzkaller-bugs+unsubscribe@googlegroups.com. > To view this discussion on the web visit https://groups.google.com/d/msgid/syzkaller-bugs/670cb520.050a0220.4cbc0.0041.GAE%40google.com. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [syzbot] [bpf?] KCSAN: data-race in __mod_timer / kvfree_call_rcu 2024-10-14 8:27 ` Dmitry Vyukov @ 2024-10-14 17:00 ` Paul E. McKenney 2024-10-16 15:07 ` Uladzislau Rezki 0 siblings, 1 reply; 5+ messages in thread From: Paul E. McKenney @ 2024-10-14 17:00 UTC (permalink / raw) To: Dmitry Vyukov, urezki Cc: syzbot, Frederic Weisbecker, Neeraj Upadhyay, Joel Fernandes, Josh Triplett, Boqun Feng, RCU, Marco Elver, andrii, ast, bpf, daniel, eddyz87, haoluo, john.fastabend, jolsa, kpsingh, linux-kernel, martin.lau, sdf, song, syzkaller-bugs, yonghong.song On Mon, Oct 14, 2024 at 10:27:05AM +0200, Dmitry Vyukov wrote: > On Mon, 14 Oct 2024 at 08:07, syzbot > <syzbot+061d370693bdd99f9d34@syzkaller.appspotmail.com> wrote: > > > > Hello, > > > > syzbot found the following issue on: > > > > HEAD commit: 5b7c893ed5ed Merge tag 'ntfs3_for_6.12' of https://github... > > git tree: upstream > > console output: https://syzkaller.appspot.com/x/log.txt?x=148ae327980000 > > kernel config: https://syzkaller.appspot.com/x/.config?x=a2f7ae2f221e9eae > > dashboard link: https://syzkaller.appspot.com/bug?extid=061d370693bdd99f9d34 > > compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 > > > > Unfortunately, I don't have any reproducer for this issue yet. > > > > Downloadable assets: > > disk image: https://storage.googleapis.com/syzbot-assets/79bb9e82835a/disk-5b7c893e.raw.xz > > vmlinux: https://storage.googleapis.com/syzbot-assets/5931997fd31c/vmlinux-5b7c893e.xz > > kernel image: https://storage.googleapis.com/syzbot-assets/fc8cc3d97b18/bzImage-5b7c893e.xz > > > > IMPORTANT: if you fix the issue, please add the following tag to the commit: > > Reported-by: syzbot+061d370693bdd99f9d34@syzkaller.appspotmail.com > > > > ================================================================== > > BUG: KCSAN: data-race in __mod_timer / kvfree_call_rcu > > > > read to 0xffff888237d1cce8 of 8 bytes by task 10149 on cpu 1: > > schedule_delayed_monitor_work kernel/rcu/tree.c:3520 [inline] This is the access to krcp->monitor_work.timer.expires in the function schedule_delayed_monitor_work(). Uladzislau, could you please take a look at this one? Thanx, Paul > +rcu maintainers, this looks more like rcu issue > > #syz set subsystems: rcu > > > kvfree_call_rcu+0x3b8/0x510 kernel/rcu/tree.c:3839 > > trie_update_elem+0x47c/0x620 kernel/bpf/lpm_trie.c:441 > > bpf_map_update_value+0x324/0x350 kernel/bpf/syscall.c:203 > > generic_map_update_batch+0x401/0x520 kernel/bpf/syscall.c:1849 > > bpf_map_do_batch+0x28c/0x3f0 kernel/bpf/syscall.c:5143 > > __sys_bpf+0x2e5/0x7a0 > > __do_sys_bpf kernel/bpf/syscall.c:5741 [inline] > > __se_sys_bpf kernel/bpf/syscall.c:5739 [inline] > > __x64_sys_bpf+0x43/0x50 kernel/bpf/syscall.c:5739 > > x64_sys_call+0x2625/0x2d60 arch/x86/include/generated/asm/syscalls_64.h:322 > > do_syscall_x64 arch/x86/entry/common.c:52 [inline] > > do_syscall_64+0xc9/0x1c0 arch/x86/entry/common.c:83 > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > write to 0xffff888237d1cce8 of 8 bytes by task 56 on cpu 0: > > __mod_timer+0x578/0x7f0 kernel/time/timer.c:1173 > > add_timer_global+0x51/0x70 kernel/time/timer.c:1330 > > __queue_delayed_work+0x127/0x1a0 kernel/workqueue.c:2523 > > queue_delayed_work_on+0xdf/0x190 kernel/workqueue.c:2552 > > queue_delayed_work include/linux/workqueue.h:677 [inline] > > schedule_delayed_monitor_work kernel/rcu/tree.c:3525 [inline] > > kfree_rcu_monitor+0x5e8/0x660 kernel/rcu/tree.c:3643 > > process_one_work kernel/workqueue.c:3229 [inline] > > process_scheduled_works+0x483/0x9a0 kernel/workqueue.c:3310 > > worker_thread+0x51d/0x6f0 kernel/workqueue.c:3391 > > kthread+0x1d1/0x210 kernel/kthread.c:389 > > ret_from_fork+0x4b/0x60 arch/x86/kernel/process.c:147 > > ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 > > > > Reported by Kernel Concurrency Sanitizer on: > > CPU: 0 UID: 0 PID: 56 Comm: kworker/u8:4 Not tainted 6.12.0-rc2-syzkaller-00050-g5b7c893ed5ed #0 > > Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 > > Workqueue: events_unbound kfree_rcu_monitor > > ================================================================== > > bridge0: port 2(bridge_slave_1) entered blocking state > > bridge0: port 2(bridge_slave_1) entered forwarding state > > > > > > --- > > 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. > > > > If the report is already addressed, let syzbot know by replying with: > > #syz fix: exact-commit-title > > > > 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 > > > > -- > > You received this message because you are subscribed to the Google Groups "syzkaller-bugs" group. > > To unsubscribe from this group and stop receiving emails from it, send an email to syzkaller-bugs+unsubscribe@googlegroups.com. > > To view this discussion on the web visit https://groups.google.com/d/msgid/syzkaller-bugs/670cb520.050a0220.4cbc0.0041.GAE%40google.com. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [syzbot] [bpf?] KCSAN: data-race in __mod_timer / kvfree_call_rcu 2024-10-14 17:00 ` Paul E. McKenney @ 2024-10-16 15:07 ` Uladzislau Rezki 2024-10-21 16:01 ` Uladzislau Rezki 0 siblings, 1 reply; 5+ messages in thread From: Uladzislau Rezki @ 2024-10-16 15:07 UTC (permalink / raw) To: paulmck Cc: Dmitry Vyukov, syzbot, Frederic Weisbecker, Neeraj Upadhyay, Joel Fernandes, Josh Triplett, Boqun Feng, RCU, Marco Elver, andrii, ast, bpf, daniel, eddyz87, haoluo, john.fastabend, jolsa, kpsingh, linux-kernel, martin.lau, sdf, song, syzkaller-bugs, yonghong.song I will have a look at this! On Mon, Oct 14, 2024 at 7:00 PM Paul E. McKenney <paulmck@kernel.org> wrote: > > On Mon, Oct 14, 2024 at 10:27:05AM +0200, Dmitry Vyukov wrote: > > On Mon, 14 Oct 2024 at 08:07, syzbot > > <syzbot+061d370693bdd99f9d34@syzkaller.appspotmail.com> wrote: > > > > > > Hello, > > > > > > syzbot found the following issue on: > > > > > > HEAD commit: 5b7c893ed5ed Merge tag 'ntfs3_for_6.12' of https://github... > > > git tree: upstream > > > console output: https://syzkaller.appspot.com/x/log.txt?x=148ae327980000 > > > kernel config: https://syzkaller.appspot.com/x/.config?x=a2f7ae2f221e9eae > > > dashboard link: https://syzkaller.appspot.com/bug?extid=061d370693bdd99f9d34 > > > compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 > > > > > > Unfortunately, I don't have any reproducer for this issue yet. > > > > > > Downloadable assets: > > > disk image: https://storage.googleapis.com/syzbot-assets/79bb9e82835a/disk-5b7c893e.raw.xz > > > vmlinux: https://storage.googleapis.com/syzbot-assets/5931997fd31c/vmlinux-5b7c893e.xz > > > kernel image: https://storage.googleapis.com/syzbot-assets/fc8cc3d97b18/bzImage-5b7c893e.xz > > > > > > IMPORTANT: if you fix the issue, please add the following tag to the commit: > > > Reported-by: syzbot+061d370693bdd99f9d34@syzkaller.appspotmail.com > > > > > > ================================================================== > > > BUG: KCSAN: data-race in __mod_timer / kvfree_call_rcu > > > > > > read to 0xffff888237d1cce8 of 8 bytes by task 10149 on cpu 1: > > > schedule_delayed_monitor_work kernel/rcu/tree.c:3520 [inline] > > This is the access to krcp->monitor_work.timer.expires in the function > schedule_delayed_monitor_work(). > > Uladzislau, could you please take a look at this one? > > Thanx, Paul > > > +rcu maintainers, this looks more like rcu issue > > > > #syz set subsystems: rcu > > > > > kvfree_call_rcu+0x3b8/0x510 kernel/rcu/tree.c:3839 > > > trie_update_elem+0x47c/0x620 kernel/bpf/lpm_trie.c:441 > > > bpf_map_update_value+0x324/0x350 kernel/bpf/syscall.c:203 > > > generic_map_update_batch+0x401/0x520 kernel/bpf/syscall.c:1849 > > > bpf_map_do_batch+0x28c/0x3f0 kernel/bpf/syscall.c:5143 > > > __sys_bpf+0x2e5/0x7a0 > > > __do_sys_bpf kernel/bpf/syscall.c:5741 [inline] > > > __se_sys_bpf kernel/bpf/syscall.c:5739 [inline] > > > __x64_sys_bpf+0x43/0x50 kernel/bpf/syscall.c:5739 > > > x64_sys_call+0x2625/0x2d60 arch/x86/include/generated/asm/syscalls_64.h:322 > > > do_syscall_x64 arch/x86/entry/common.c:52 [inline] > > > do_syscall_64+0xc9/0x1c0 arch/x86/entry/common.c:83 > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > > > write to 0xffff888237d1cce8 of 8 bytes by task 56 on cpu 0: > > > __mod_timer+0x578/0x7f0 kernel/time/timer.c:1173 > > > add_timer_global+0x51/0x70 kernel/time/timer.c:1330 > > > __queue_delayed_work+0x127/0x1a0 kernel/workqueue.c:2523 > > > queue_delayed_work_on+0xdf/0x190 kernel/workqueue.c:2552 > > > queue_delayed_work include/linux/workqueue.h:677 [inline] > > > schedule_delayed_monitor_work kernel/rcu/tree.c:3525 [inline] > > > kfree_rcu_monitor+0x5e8/0x660 kernel/rcu/tree.c:3643 > > > process_one_work kernel/workqueue.c:3229 [inline] > > > process_scheduled_works+0x483/0x9a0 kernel/workqueue.c:3310 > > > worker_thread+0x51d/0x6f0 kernel/workqueue.c:3391 > > > kthread+0x1d1/0x210 kernel/kthread.c:389 > > > ret_from_fork+0x4b/0x60 arch/x86/kernel/process.c:147 > > > ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 > > > > > > Reported by Kernel Concurrency Sanitizer on: > > > CPU: 0 UID: 0 PID: 56 Comm: kworker/u8:4 Not tainted 6.12.0-rc2-syzkaller-00050-g5b7c893ed5ed #0 > > > Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 > > > Workqueue: events_unbound kfree_rcu_monitor > > > ================================================================== > > > bridge0: port 2(bridge_slave_1) entered blocking state > > > bridge0: port 2(bridge_slave_1) entered forwarding state > > > > > > > > > --- > > > 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. > > > > > > If the report is already addressed, let syzbot know by replying with: > > > #syz fix: exact-commit-title > > > > > > 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 > > > > > > -- > > > You received this message because you are subscribed to the Google Groups "syzkaller-bugs" group. > > > To unsubscribe from this group and stop receiving emails from it, send an email to syzkaller-bugs+unsubscribe@googlegroups.com. > > > To view this discussion on the web visit https://groups.google.com/d/msgid/syzkaller-bugs/670cb520.050a0220.4cbc0.0041.GAE%40google.com. -- Uladzislau Rezki ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [syzbot] [bpf?] KCSAN: data-race in __mod_timer / kvfree_call_rcu 2024-10-16 15:07 ` Uladzislau Rezki @ 2024-10-21 16:01 ` Uladzislau Rezki 0 siblings, 0 replies; 5+ messages in thread From: Uladzislau Rezki @ 2024-10-21 16:01 UTC (permalink / raw) To: paulmck Cc: paulmck, Dmitry Vyukov, syzbot, Frederic Weisbecker, Neeraj Upadhyay, Joel Fernandes, Josh Triplett, Boqun Feng, RCU, Marco Elver, andrii, ast, bpf, daniel, eddyz87, haoluo, john.fastabend, jolsa, kpsingh, linux-kernel, martin.lau, sdf, song, syzkaller-bugs, yonghong.song > On Mon, Oct 14, 2024 at 7:00 PM Paul E. McKenney <paulmck@kernel.org> wrote: > > > > On Mon, Oct 14, 2024 at 10:27:05AM +0200, Dmitry Vyukov wrote: > > > On Mon, 14 Oct 2024 at 08:07, syzbot > > > <syzbot+061d370693bdd99f9d34@syzkaller.appspotmail.com> wrote: > > > > > > > > Hello, > > > > > > > > syzbot found the following issue on: > > > > > > > > HEAD commit: 5b7c893ed5ed Merge tag 'ntfs3_for_6.12' of https://github... > > > > git tree: upstream > > > > console output: https://syzkaller.appspot.com/x/log.txt?x=148ae327980000 > > > > kernel config: https://syzkaller.appspot.com/x/.config?x=a2f7ae2f221e9eae > > > > dashboard link: https://syzkaller.appspot.com/bug?extid=061d370693bdd99f9d34 > > > > compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 > > > > > > > > Unfortunately, I don't have any reproducer for this issue yet. > > > > > > > > Downloadable assets: > > > > disk image: https://storage.googleapis.com/syzbot-assets/79bb9e82835a/disk-5b7c893e.raw.xz > > > > vmlinux: https://storage.googleapis.com/syzbot-assets/5931997fd31c/vmlinux-5b7c893e.xz > > > > kernel image: https://storage.googleapis.com/syzbot-assets/fc8cc3d97b18/bzImage-5b7c893e.xz > > > > > > > > IMPORTANT: if you fix the issue, please add the following tag to the commit: > > > > Reported-by: syzbot+061d370693bdd99f9d34@syzkaller.appspotmail.com > > > > > > > > ================================================================== > > > > BUG: KCSAN: data-race in __mod_timer / kvfree_call_rcu > > > > > > > > read to 0xffff888237d1cce8 of 8 bytes by task 10149 on cpu 1: > > > > schedule_delayed_monitor_work kernel/rcu/tree.c:3520 [inline] > > > > This is the access to krcp->monitor_work.timer.expires in the function > > schedule_delayed_monitor_work(). > > > > Uladzislau, could you please take a look at this one? > > > > Thanx, Paul > > > > > +rcu maintainers, this looks more like rcu issue > > > > > > #syz set subsystems: rcu > > > > > > > kvfree_call_rcu+0x3b8/0x510 kernel/rcu/tree.c:3839 > > > > trie_update_elem+0x47c/0x620 kernel/bpf/lpm_trie.c:441 > > > > bpf_map_update_value+0x324/0x350 kernel/bpf/syscall.c:203 > > > > generic_map_update_batch+0x401/0x520 kernel/bpf/syscall.c:1849 > > > > bpf_map_do_batch+0x28c/0x3f0 kernel/bpf/syscall.c:5143 > > > > __sys_bpf+0x2e5/0x7a0 > > > > __do_sys_bpf kernel/bpf/syscall.c:5741 [inline] > > > > __se_sys_bpf kernel/bpf/syscall.c:5739 [inline] > > > > __x64_sys_bpf+0x43/0x50 kernel/bpf/syscall.c:5739 > > > > x64_sys_call+0x2625/0x2d60 arch/x86/include/generated/asm/syscalls_64.h:322 > > > > do_syscall_x64 arch/x86/entry/common.c:52 [inline] > > > > do_syscall_64+0xc9/0x1c0 arch/x86/entry/common.c:83 > > > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > > > > > write to 0xffff888237d1cce8 of 8 bytes by task 56 on cpu 0: > > > > __mod_timer+0x578/0x7f0 kernel/time/timer.c:1173 > > > > add_timer_global+0x51/0x70 kernel/time/timer.c:1330 > > > > __queue_delayed_work+0x127/0x1a0 kernel/workqueue.c:2523 > > > > queue_delayed_work_on+0xdf/0x190 kernel/workqueue.c:2552 > > > > queue_delayed_work include/linux/workqueue.h:677 [inline] > > > > schedule_delayed_monitor_work kernel/rcu/tree.c:3525 [inline] > > > > kfree_rcu_monitor+0x5e8/0x660 kernel/rcu/tree.c:3643 > > > > process_one_work kernel/workqueue.c:3229 [inline] > > > > process_scheduled_works+0x483/0x9a0 kernel/workqueue.c:3310 > > > > worker_thread+0x51d/0x6f0 kernel/workqueue.c:3391 > > > > kthread+0x1d1/0x210 kernel/kthread.c:389 > > > > ret_from_fork+0x4b/0x60 arch/x86/kernel/process.c:147 > > > > ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 > > > > > > > > Reported by Kernel Concurrency Sanitizer on: > > > > CPU: 0 UID: 0 PID: 56 Comm: kworker/u8:4 Not tainted 6.12.0-rc2-syzkaller-00050-g5b7c893ed5ed #0 > > > > Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 > > > > Workqueue: events_unbound kfree_rcu_monitor > > > > ================================================================== > > > > bridge0: port 2(bridge_slave_1) entered blocking state > > > > bridge0: port 2(bridge_slave_1) entered forwarding state > > > > > I tried to reproduce it but i am not able to. For the other hand, it is obvious that a reading "krcp->monitor_work.timer.expires" and simultaneous writing is possible. So, we can address it, i mean to prevent such parallel access by following patch: <snip> diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index e641cc681901..d711870fde84 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -3531,7 +3531,7 @@ static int krc_count(struct kfree_rcu_cpu *krcp) } static void -schedule_delayed_monitor_work(struct kfree_rcu_cpu *krcp) +__schedule_delayed_monitor_work(struct kfree_rcu_cpu *krcp) { long delay, delay_left; @@ -3545,6 +3545,16 @@ schedule_delayed_monitor_work(struct kfree_rcu_cpu *krcp) queue_delayed_work(system_wq, &krcp->monitor_work, delay); } +static void +schedule_delayed_monitor_work(struct kfree_rcu_cpu *krcp) +{ + unsigned long flags; + + raw_spin_lock_irqsave(&krcp->lock, flags); + __schedule_delayed_monitor_work(krcp); + raw_spin_unlock_irqrestore(&krcp->lock, flags); +} + static void kvfree_rcu_drain_ready(struct kfree_rcu_cpu *krcp) { @@ -3841,7 +3851,7 @@ void kvfree_call_rcu(struct rcu_head *head, void *ptr) // Set timer to drain after KFREE_DRAIN_JIFFIES. if (rcu_scheduler_active == RCU_SCHEDULER_RUNNING) - schedule_delayed_monitor_work(krcp); + __schedule_delayed_monitor_work(krcp); unlock_return: krc_this_cpu_unlock(krcp, flags); <snip> i will send out the patch after some testing! -- Uladzislau Rezki ^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-10-21 16:01 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-10-14 6:07 [syzbot] [bpf?] KCSAN: data-race in __mod_timer / kvfree_call_rcu syzbot 2024-10-14 8:27 ` Dmitry Vyukov 2024-10-14 17:00 ` Paul E. McKenney 2024-10-16 15:07 ` Uladzislau Rezki 2024-10-21 16:01 ` Uladzislau Rezki
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox