On 4/13/19 9:25 AM, Jens Axboe wrote: > On 4/13/19 2:26 AM, syzbot wrote: >> Hello, >> >> syzbot found the following crash on: >> >> HEAD commit: 8ee15f32 Merge tag 'dma-mapping-5.1-1' of git://git.infrad.. >> git tree: upstream >> console output: https://syzkaller.appspot.com/x/log.txt?x=146b7cd3200000 >> kernel config: https://syzkaller.appspot.com/x/.config?x=4fb64439e07a1ec0 >> dashboard link: https://syzkaller.appspot.com/bug?extid=cd714a07c6de2bc34293 >> compiler: gcc (GCC) 9.0.0 20181231 (experimental) >> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=15d8b397200000 >> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=10b62ab7200000 >> >> The bug was bisected to: >> >> commit 6c271ce2f1d572f7fa225700a13cfe7ced492434 >> Author: Jens Axboe <axboe@xxxxxxxxx> >> Date: Thu Jan 10 18:22:30 2019 +0000 >> >> io_uring: add submission polling >> >> bisection log: https://syzkaller.appspot.com/x/bisect.txt?x=170a286b200000 >> final crash: https://syzkaller.appspot.com/x/report.txt?x=148a286b200000 >> console output: https://syzkaller.appspot.com/x/log.txt?x=108a286b200000 >> >> IMPORTANT: if you fix the bug, please add the following tag to the commit: >> Reported-by: syzbot+cd714a07c6de2bc34293@xxxxxxxxxxxxxxxxxxxxxxxxx >> Fixes: 6c271ce2f1d5 ("io_uring: add submission polling") >> >> WARNING: CPU: 1 PID: 7600 at include/linux/cpumask.h:121 cpu_max_bits_warn >> include/linux/cpumask.h:121 [inline] >> WARNING: CPU: 1 PID: 7600 at include/linux/cpumask.h:121 cpumask_check >> include/linux/cpumask.h:128 [inline] >> WARNING: CPU: 1 PID: 7600 at include/linux/cpumask.h:121 cpumask_test_cpu >> include/linux/cpumask.h:344 [inline] >> WARNING: CPU: 1 PID: 7600 at include/linux/cpumask.h:121 >> io_sq_offload_start fs/io_uring.c:2244 [inline] >> WARNING: CPU: 1 PID: 7600 at include/linux/cpumask.h:121 io_uring_create >> fs/io_uring.c:2851 [inline] >> WARNING: CPU: 1 PID: 7600 at include/linux/cpumask.h:121 >> io_uring_setup+0x13b2/0x1990 fs/io_uring.c:2903 >> Kernel panic - not syncing: panic_on_warn set ... >> CPU: 1 PID: 7600 Comm: syz-executor594 Not tainted 5.1.0-rc4+ #65 >> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS >> Google 01/01/2011 >> Call Trace: >> __dump_stack lib/dump_stack.c:77 [inline] >> dump_stack+0x172/0x1f0 lib/dump_stack.c:113 >> panic+0x2cb/0x65c kernel/panic.c:214 >> __warn.cold+0x20/0x45 kernel/panic.c:571 >> report_bug+0x263/0x2b0 lib/bug.c:186 >> fixup_bug arch/x86/kernel/traps.c:179 [inline] >> fixup_bug arch/x86/kernel/traps.c:174 [inline] >> do_error_trap+0x11b/0x200 arch/x86/kernel/traps.c:272 >> do_invalid_op+0x37/0x50 arch/x86/kernel/traps.c:291 >> invalid_op+0x14/0x20 arch/x86/entry/entry_64.S:973 >> RIP: 0010:cpu_max_bits_warn include/linux/cpumask.h:121 [inline] >> RIP: 0010:cpumask_check include/linux/cpumask.h:128 [inline] >> RIP: 0010:cpumask_test_cpu include/linux/cpumask.h:344 [inline] >> RIP: 0010:io_sq_offload_start fs/io_uring.c:2244 [inline] >> RIP: 0010:io_uring_create fs/io_uring.c:2851 [inline] >> RIP: 0010:io_uring_setup+0x13b2/0x1990 fs/io_uring.c:2903 >> Code: 00 00 00 00 fc ff df 48 89 da 48 c1 ea 03 80 3c 02 00 0f 84 18 fe ff >> ff 48 89 df e8 e8 80 e0 ff e9 0b fe ff ff e8 2e 79 a8 ff <0f> 0b e9 db f8 >> ff ff e8 22 79 a8 ff 49 8d 9c 24 88 00 00 00 48 b8 >> RSP: 0018:ffff8880a8eb7dc0 EFLAGS: 00010293 >> RAX: ffff88808cdd8700 RBX: 0000000000000400 RCX: ffffffff81c80eab >> RDX: 0000000000000000 RSI: ffffffff81c815d2 RDI: 0000000000000005 >> RBP: ffff8880a8eb7ef0 R08: ffff88808cdd8700 R09: ffffed1011c75244 >> R10: ffffed1011c75243 R11: ffff88808e3a921f R12: ffff88808d34a480 >> R13: ffff8880a8eb7ec8 R14: ffff88808d34a4c0 R15: ffff88808d34a4d4 >> __do_sys_io_uring_setup fs/io_uring.c:2916 [inline] >> __se_sys_io_uring_setup fs/io_uring.c:2913 [inline] >> __x64_sys_io_uring_setup+0x54/0x80 fs/io_uring.c:2913 >> do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290 >> entry_SYSCALL_64_after_hwframe+0x49/0xbe >> RIP: 0033:0x440239 >> Code: 18 89 d0 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 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 0f 83 fb 13 fc ff c3 66 2e 0f 1f 84 00 00 00 00 >> RSP: 002b:00007fff32156718 EFLAGS: 00000246 ORIG_RAX: 00000000000001a9 >> RAX: ffffffffffffffda RBX: 00000000004002c8 RCX: 0000000000440239 >> RDX: 0000000000400b60 RSI: 0000000020000200 RDI: 0000000000000c9f >> RBP: 00000000006ca018 R08: 0000000000000000 R09: 0000000000000000 >> R10: 00000000ffffffff R11: 0000000000000246 R12: 0000000000401ac0 >> R13: 0000000000401b50 R14: 0000000000000000 R15: 0000000000000000 >> Kernel Offset: disabled >> Rebooting in 86400 seconds.. > > Thanks for the report, below should fix it. Forgot to include the patch, apparently. Here it is: diff --git a/fs/io_uring.c b/fs/io_uring.c index 07d6ef195d05..c9bd17d6571c 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -2236,19 +2241,19 @@ static int io_sq_offload_start(struct io_ring_ctx *ctx, mmgrab(current->mm); ctx->sqo_mm = current->mm; - ctx->sq_thread_idle = msecs_to_jiffies(p->sq_thread_idle); - if (!ctx->sq_thread_idle) - ctx->sq_thread_idle = HZ; - - ret = -EINVAL; - if (!cpu_possible(p->sq_thread_cpu)) - goto err; - if (ctx->flags & IORING_SETUP_SQPOLL) { + ctx->sq_thread_idle = msecs_to_jiffies(p->sq_thread_idle); + if (!ctx->sq_thread_idle) + ctx->sq_thread_idle = HZ; + if (p->flags & IORING_SETUP_SQ_AFF) { int cpu; cpu = array_index_nospec(p->sq_thread_cpu, NR_CPUS); + ret = -EINVAL; + if (!cpu_possible(p->sq_thread_cpu)) + goto err; + ctx->sqo_thread = kthread_create_on_cpu(io_sq_thread, ctx, cpu, "io_uring-sq"); -- Jens Axboe