* [syzbot] [fs?] KCSAN: data-race in choose_mountpoint_rcu / umount_tree @ 2025-04-22 12:11 syzbot 2025-04-22 13:43 ` Christian Brauner 0 siblings, 1 reply; 5+ messages in thread From: syzbot @ 2025-04-22 12:11 UTC (permalink / raw) To: brauner, jack, linux-fsdevel, linux-kernel, syzkaller-bugs, viro Hello, syzbot found the following issue on: HEAD commit: a33b5a08cbbd Merge tag 'sched_ext-for-6.15-rc3-fixes' of g.. git tree: upstream console output: https://syzkaller.appspot.com/x/log.txt?x=1058f26f980000 kernel config: https://syzkaller.appspot.com/x/.config?x=85dd0f8b81b9d41f dashboard link: https://syzkaller.appspot.com/bug?extid=81fdaf0f522d5c5e41fb compiler: Debian clang version 15.0.6, Debian LLD 15.0.6 Unfortunately, I don't have any reproducer for this issue yet. Downloadable assets: disk image: https://storage.googleapis.com/syzbot-assets/718e6f7bde0a/disk-a33b5a08.raw.xz vmlinux: https://storage.googleapis.com/syzbot-assets/20f5e402fb15/vmlinux-a33b5a08.xz kernel image: https://storage.googleapis.com/syzbot-assets/2dd06e277fc7/bzImage-a33b5a08.xz IMPORTANT: if you fix the issue, please add the following tag to the commit: Reported-by: syzbot+81fdaf0f522d5c5e41fb@syzkaller.appspotmail.com ================================================================== BUG: KCSAN: data-race in choose_mountpoint_rcu / umount_tree write to 0xffff888108512d98 of 8 bytes by task 21705 on cpu 1: unhash_mnt fs/namespace.c:1050 [inline] umount_mnt fs/namespace.c:1064 [inline] umount_tree+0x6f0/0xb10 fs/namespace.c:1922 do_umount fs/namespace.c:-1 [inline] path_umount+0x9c1/0xa40 fs/namespace.c:2144 ksys_umount fs/namespace.c:2167 [inline] __do_sys_umount fs/namespace.c:2172 [inline] __se_sys_umount fs/namespace.c:2170 [inline] __x64_sys_umount+0xb7/0xe0 fs/namespace.c:2170 x64_sys_call+0x2883/0x2e10 arch/x86/include/generated/asm/syscalls_64.h:167 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xc9/0x1a0 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f read to 0xffff888108512d98 of 8 bytes by task 21704 on cpu 0: choose_mountpoint_rcu+0x3d/0x130 fs/namei.c:1386 follow_dotdot_rcu fs/namei.c:2020 [inline] handle_dots+0x559/0x790 fs/namei.c:2095 walk_component fs/namei.c:2132 [inline] link_path_walk+0x5f6/0x840 fs/namei.c:2503 path_lookupat+0x6c/0x2a0 fs/namei.c:2659 filename_lookup+0x14b/0x340 fs/namei.c:2689 filename_setxattr+0x59/0x2b0 fs/xattr.c:660 path_setxattrat+0x28a/0x320 fs/xattr.c:713 __do_sys_setxattr fs/xattr.c:747 [inline] __se_sys_setxattr fs/xattr.c:743 [inline] __x64_sys_setxattr+0x6e/0x90 fs/xattr.c:743 x64_sys_call+0x28e7/0x2e10 arch/x86/include/generated/asm/syscalls_64.h:189 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xc9/0x1a0 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f value changed: 0xffff888116147cc0 -> 0xffff8881065c23c0 Reported by Kernel Concurrency Sanitizer on: CPU: 0 UID: 0 PID: 21704 Comm: syz.6.5865 Not tainted 6.15.0-rc3-syzkaller-00008-ga33b5a08cbbd #0 PREEMPT(voluntary) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025 ================================================================== --- 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] [fs?] KCSAN: data-race in choose_mountpoint_rcu / umount_tree 2025-04-22 12:11 [syzbot] [fs?] KCSAN: data-race in choose_mountpoint_rcu / umount_tree syzbot @ 2025-04-22 13:43 ` Christian Brauner 2025-04-22 14:42 ` Marco Elver 0 siblings, 1 reply; 5+ messages in thread From: Christian Brauner @ 2025-04-22 13:43 UTC (permalink / raw) To: syzbot; +Cc: jack, linux-fsdevel, linux-kernel, syzkaller-bugs, viro On Tue, Apr 22, 2025 at 05:11:27AM -0700, syzbot wrote: > Hello, > > syzbot found the following issue on: > > HEAD commit: a33b5a08cbbd Merge tag 'sched_ext-for-6.15-rc3-fixes' of g.. > git tree: upstream > console output: https://syzkaller.appspot.com/x/log.txt?x=1058f26f980000 > kernel config: https://syzkaller.appspot.com/x/.config?x=85dd0f8b81b9d41f > dashboard link: https://syzkaller.appspot.com/bug?extid=81fdaf0f522d5c5e41fb > compiler: Debian clang version 15.0.6, Debian LLD 15.0.6 > > Unfortunately, I don't have any reproducer for this issue yet. > > Downloadable assets: > disk image: https://storage.googleapis.com/syzbot-assets/718e6f7bde0a/disk-a33b5a08.raw.xz > vmlinux: https://storage.googleapis.com/syzbot-assets/20f5e402fb15/vmlinux-a33b5a08.xz > kernel image: https://storage.googleapis.com/syzbot-assets/2dd06e277fc7/bzImage-a33b5a08.xz > > IMPORTANT: if you fix the issue, please add the following tag to the commit: > Reported-by: syzbot+81fdaf0f522d5c5e41fb@syzkaller.appspotmail.com > > ================================================================== > BUG: KCSAN: data-race in choose_mountpoint_rcu / umount_tree Benign, as this would be detected by the changed sequence count of @mount_lock. I hope we won't end up with endless reports about:w anything that we protect with a seqlock. That'll be very annoying. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [syzbot] [fs?] KCSAN: data-race in choose_mountpoint_rcu / umount_tree 2025-04-22 13:43 ` Christian Brauner @ 2025-04-22 14:42 ` Marco Elver 2025-04-22 15:43 ` Christian Brauner 2025-04-22 17:12 ` Al Viro 0 siblings, 2 replies; 5+ messages in thread From: Marco Elver @ 2025-04-22 14:42 UTC (permalink / raw) To: Christian Brauner Cc: syzbot, jack, linux-fsdevel, linux-kernel, syzkaller-bugs, viro On Tue, 22 Apr 2025 at 15:43, 'Christian Brauner' via syzkaller-bugs <syzkaller-bugs@googlegroups.com> wrote: > > On Tue, Apr 22, 2025 at 05:11:27AM -0700, syzbot wrote: > > Hello, > > > > syzbot found the following issue on: > > > > HEAD commit: a33b5a08cbbd Merge tag 'sched_ext-for-6.15-rc3-fixes' of g.. > > git tree: upstream > > console output: https://syzkaller.appspot.com/x/log.txt?x=1058f26f980000 > > kernel config: https://syzkaller.appspot.com/x/.config?x=85dd0f8b81b9d41f > > dashboard link: https://syzkaller.appspot.com/bug?extid=81fdaf0f522d5c5e41fb > > compiler: Debian clang version 15.0.6, Debian LLD 15.0.6 > > > > Unfortunately, I don't have any reproducer for this issue yet. > > > > Downloadable assets: > > disk image: https://storage.googleapis.com/syzbot-assets/718e6f7bde0a/disk-a33b5a08.raw.xz > > vmlinux: https://storage.googleapis.com/syzbot-assets/20f5e402fb15/vmlinux-a33b5a08.xz > > kernel image: https://storage.googleapis.com/syzbot-assets/2dd06e277fc7/bzImage-a33b5a08.xz > > > > IMPORTANT: if you fix the issue, please add the following tag to the commit: > > Reported-by: syzbot+81fdaf0f522d5c5e41fb@syzkaller.appspotmail.com > > > > ================================================================== > > BUG: KCSAN: data-race in choose_mountpoint_rcu / umount_tree > > Benign, as this would be detected by the changed sequence count of > @mount_lock. I hope we won't end up with endless reports about:w > anything that we protect with a seqlock. That'll be very annoying. Seqlocks are generally supported, but have caused headaches in the past, esp. if the reader-side seqlock critical section does not follow the typical do-seqbegin-while-retry pattern, or the critical section is too large. If I read this right, the struct dentry *mountpoint = m->mnt_mountpoint; is before the seqlock-reader beginning with "*seqp = read_seqcount_begin(&mountpoint->d_seq);" ? In fact, a lot of the special seqlock rules for KCSAN were conceived due to irregular seqlock patterns in fs/ - I wouldn't be surprised there still is the odd false positive here or there. There have also been recent improvements to KCSAN's seqlock handling, but 6.15-rc* should have those fixes already. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [syzbot] [fs?] KCSAN: data-race in choose_mountpoint_rcu / umount_tree 2025-04-22 14:42 ` Marco Elver @ 2025-04-22 15:43 ` Christian Brauner 2025-04-22 17:12 ` Al Viro 1 sibling, 0 replies; 5+ messages in thread From: Christian Brauner @ 2025-04-22 15:43 UTC (permalink / raw) To: Marco Elver Cc: syzbot, jack, linux-fsdevel, linux-kernel, syzkaller-bugs, viro On Tue, Apr 22, 2025 at 04:42:52PM +0200, Marco Elver wrote: > On Tue, 22 Apr 2025 at 15:43, 'Christian Brauner' via syzkaller-bugs > <syzkaller-bugs@googlegroups.com> wrote: > > > > On Tue, Apr 22, 2025 at 05:11:27AM -0700, syzbot wrote: > > > Hello, > > > > > > syzbot found the following issue on: > > > > > > HEAD commit: a33b5a08cbbd Merge tag 'sched_ext-for-6.15-rc3-fixes' of g.. > > > git tree: upstream > > > console output: https://syzkaller.appspot.com/x/log.txt?x=1058f26f980000 > > > kernel config: https://syzkaller.appspot.com/x/.config?x=85dd0f8b81b9d41f > > > dashboard link: https://syzkaller.appspot.com/bug?extid=81fdaf0f522d5c5e41fb > > > compiler: Debian clang version 15.0.6, Debian LLD 15.0.6 > > > > > > Unfortunately, I don't have any reproducer for this issue yet. > > > > > > Downloadable assets: > > > disk image: https://storage.googleapis.com/syzbot-assets/718e6f7bde0a/disk-a33b5a08.raw.xz > > > vmlinux: https://storage.googleapis.com/syzbot-assets/20f5e402fb15/vmlinux-a33b5a08.xz > > > kernel image: https://storage.googleapis.com/syzbot-assets/2dd06e277fc7/bzImage-a33b5a08.xz > > > > > > IMPORTANT: if you fix the issue, please add the following tag to the commit: > > > Reported-by: syzbot+81fdaf0f522d5c5e41fb@syzkaller.appspotmail.com > > > > > > ================================================================== > > > BUG: KCSAN: data-race in choose_mountpoint_rcu / umount_tree > > > > Benign, as this would be detected by the changed sequence count of > > @mount_lock. I hope we won't end up with endless reports about:w > > anything that we protect with a seqlock. That'll be very annoying. > > Seqlocks are generally supported, but have caused headaches in the > past, esp. if the reader-side seqlock critical section does not follow > the typical do-seqbegin-while-retry pattern, or the critical section > is too large. If I read this right, the > > struct dentry *mountpoint = m->mnt_mountpoint; > > is before the seqlock-reader beginning with "*seqp = > read_seqcount_begin(&mountpoint->d_seq);" ? choose_mountpoint_rcu() is always called within a context where the seqcount of the mount_lock is taken before it is called. IOW, there's the secount stored in a dentry like mountpoint->d_seq and then there's the seqcount of the mount_lock itself. For one callsite in choose_mountpoint() it's obvious: unsigned seq, mseq = read_seqbegin(&mount_lock); found = choose_mountpoint_rcu(m, root, path, &seq); if (unlikely(!found)) { if (!read_seqretry(&mount_lock, mseq)) break; but for follow_dotdot_rcu() if (!choose_mountpoint_rcu(real_mount(nd->path.mnt), &nd->root, &path, &seq)) if (read_seqretry(&mount_lock, nd->m_seq)) return ERR_PTR(-ECHILD); nd->m_seq is setup in path_init() or in __legitimize_path() or __legitimize_mnt(). IOW, it can be a rather complex callchain. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [syzbot] [fs?] KCSAN: data-race in choose_mountpoint_rcu / umount_tree 2025-04-22 14:42 ` Marco Elver 2025-04-22 15:43 ` Christian Brauner @ 2025-04-22 17:12 ` Al Viro 1 sibling, 0 replies; 5+ messages in thread From: Al Viro @ 2025-04-22 17:12 UTC (permalink / raw) To: Marco Elver Cc: Christian Brauner, syzbot, jack, linux-fsdevel, linux-kernel, syzkaller-bugs On Tue, Apr 22, 2025 at 04:42:52PM +0200, Marco Elver wrote: > Seqlocks are generally supported, but have caused headaches in the > past, esp. if the reader-side seqlock critical section does not follow > the typical do-seqbegin-while-retry pattern, or the critical section > is too large. If I read this right, the > > struct dentry *mountpoint = m->mnt_mountpoint; > > is before the seqlock-reader beginning with "*seqp = > read_seqcount_begin(&mountpoint->d_seq);" ? Different seqlock - mount_lock protects mount tree and it's been sampled all way back in the beginning of RCU pathwalk... ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-04-22 17:12 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-04-22 12:11 [syzbot] [fs?] KCSAN: data-race in choose_mountpoint_rcu / umount_tree syzbot 2025-04-22 13:43 ` Christian Brauner 2025-04-22 14:42 ` Marco Elver 2025-04-22 15:43 ` Christian Brauner 2025-04-22 17:12 ` Al Viro
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox