All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pavel Begunkov <asml.silence@gmail.com>
To: syzbot <syzbot+a36975231499dc24df44@syzkaller.appspotmail.com>,
	axboe@kernel.dk, io-uring@vger.kernel.org,
	linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com
Subject: Re: [syzbot] [io-uring?] KCSAN: data-race in io_wq_activate_free_worker / io_wq_worker_running
Date: Wed, 13 Sep 2023 13:12:22 +0100	[thread overview]
Message-ID: <4e400095-7205-883b-c8fd-4aa95a1b6423@gmail.com> (raw)
In-Reply-To: <000000000000fc6ba706053be013@google.com>

On 9/13/23 12:29, syzbot wrote:
> Hello,
> 
> syzbot found the following issue on:
> 
> HEAD commit:    f97e18a3f2fb Merge tag 'gpio-updates-for-v6.6' of git://gi..
> git tree:       upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=12864667a80000
> kernel config:  https://syzkaller.appspot.com/x/.config?x=fe440f256d065d3b
> dashboard link: https://syzkaller.appspot.com/bug?extid=a36975231499dc24df44
> 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/b1781aaff038/disk-f97e18a3.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/5b915468fd6d/vmlinux-f97e18a3.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/abc8ece931f3/bzImage-f97e18a3.xz
> 
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+a36975231499dc24df44@syzkaller.appspotmail.com
> 
> ==================================================================
> BUG: KCSAN: data-race in io_wq_activate_free_worker / io_wq_worker_running
> 
> write to 0xffff888127f736c4 of 4 bytes by task 4731 on cpu 1:
>   io_wq_worker_running+0x64/0xa0 io_uring/io-wq.c:668
>   schedule_timeout+0xcc/0x230 kernel/time/timer.c:2167
>   io_wq_worker+0x4b2/0x840 io_uring/io-wq.c:633
>   ret_from_fork+0x2e/0x40 arch/x86/kernel/process.c:145
>   ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:304
> 
> read to 0xffff888127f736c4 of 4 bytes by task 4719 on cpu 0:
>   io_wq_get_acct io_uring/io-wq.c:168 [inline]
>   io_wq_activate_free_worker+0xfa/0x280 io_uring/io-wq.c:267
>   io_wq_enqueue+0x262/0x450 io_uring/io-wq.c:914

1) the worst case scenario we'll choose a wrong type of
worker, which is inconsequential.

2) we're changing the IO_WORKER_F_RUNNING bit, but checking
for IO_WORKER_F_BOUND. The latter one is set at the very
beginning, it would require compiler to be super inventive
to actually hit the problem.

I don't believe it's a problem, but it'll nice to attribute
it properly, READ_ONCE?, or split IO_WORKER_F_BOUND out into
a separate field.


>   io_queue_iowq+0x1d1/0x310 io_uring/io_uring.c:514
>   io_queue_sqe_fallback+0x82/0xe0 io_uring/io_uring.c:2084
>   io_submit_sqe io_uring/io_uring.c:2305 [inline]
>   io_submit_sqes+0xbd3/0xfb0 io_uring/io_uring.c:2420
>   __do_sys_io_uring_enter io_uring/io_uring.c:3628 [inline]
>   __se_sys_io_uring_enter+0x1f8/0x1c10 io_uring/io_uring.c:3562
>   __x64_sys_io_uring_enter+0x78/0x90 io_uring/io_uring.c:3562
>   do_syscall_x64 arch/x86/entry/common.c:50 [inline]
>   do_syscall_64+0x41/0xc0 arch/x86/entry/common.c:80
>   entry_SYSCALL_64_after_hwframe+0x63/0xcd
> 
> value changed: 0x0000000d -> 0x0000000b
> 
> Reported by Kernel Concurrency Sanitizer on:
> CPU: 0 PID: 4719 Comm: syz-executor.1 Not tainted 6.5.0-syzkaller-01810-gf97e18a3f2fb #0
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/26/2023
> ==================================================================
> 
> 
> ---
> 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 bug is already fixed, let syzbot know by replying with:
> #syz fix: exact-commit-title
> 
> If you want to overwrite bug's subsystems, reply with:
> #syz set subsystems: new-subsystem
> (See the list of subsystem names on the web dashboard)
> 
> If the bug is a duplicate of another bug, reply with:
> #syz dup: exact-subject-of-another-report
> 
> If you want to undo deduplication, reply with:
> #syz undup

-- 
Pavel Begunkov

  reply	other threads:[~2023-09-13 12:13 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-13 11:29 [syzbot] [io-uring?] KCSAN: data-race in io_wq_activate_free_worker / io_wq_worker_running syzbot
2023-09-13 12:12 ` Pavel Begunkov [this message]
2023-09-13 13:07   ` Marco Elver
2023-09-14 13:09     ` Pavel Begunkov
2023-09-14 13:25       ` Marco Elver
2023-09-14 13:39         ` Pavel Begunkov

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=4e400095-7205-883b-c8fd-4aa95a1b6423@gmail.com \
    --to=asml.silence@gmail.com \
    --cc=axboe@kernel.dk \
    --cc=io-uring@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=syzbot+a36975231499dc24df44@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.