Linux-Block Archive mirror
 help / color / mirror / Atom feed
* [syzbot] [block?] KCSAN: data-race in __get_task_ioprio / set_task_ioprio
@ 2023-04-24  7:20 syzbot
  2023-04-24  7:42 ` Dmitry Vyukov
  0 siblings, 1 reply; 2+ messages in thread
From: syzbot @ 2023-04-24  7:20 UTC (permalink / raw
  To: axboe, linux-block, linux-kernel, syzkaller-bugs

Hello,

syzbot found the following issue on:

HEAD commit:    44149752e998 Merge tag 'cgroup-for-6.3-rc6-fixes' of git:/..
git tree:       upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=147afc8fc80000
kernel config:  https://syzkaller.appspot.com/x/.config?x=710057cbb8def08c
dashboard link: https://syzkaller.appspot.com/bug?extid=28ed267c18c614a9376f
compiler:       Debian clang version 15.0.7, GNU ld (GNU Binutils for Debian) 2.35.2

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/7bfa303f05cc/disk-44149752.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/4e8ea8730409/vmlinux-44149752.xz
kernel image: https://storage.googleapis.com/syzbot-assets/e584bce13ba7/bzImage-44149752.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+28ed267c18c614a9376f@syzkaller.appspotmail.com

==================================================================
BUG: KCSAN: data-race in __get_task_ioprio / set_task_ioprio

write to 0xffff888108c83888 of 8 bytes by task 15748 on cpu 0:
 set_task_ioprio+0x23b/0x260 block/blk-ioc.c:291
 __do_sys_ioprio_set block/ioprio.c:124 [inline]
 __se_sys_ioprio_set+0x272/0x5a0 block/ioprio.c:68
 __x64_sys_ioprio_set+0x43/0x50 block/ioprio.c:68
 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

read to 0xffff888108c83888 of 8 bytes by task 15749 on cpu 1:
 __get_task_ioprio+0x1c/0x110 block/ioprio.c:150
 get_current_ioprio include/linux/ioprio.h:60 [inline]
 init_sync_kiocb include/linux/fs.h:2003 [inline]
 __kernel_write_iter+0xe2/0x380 fs/read_write.c:515
 dump_emit_page fs/coredump.c:885 [inline]
 dump_user_range+0x258/0x480 fs/coredump.c:912
 elf_core_dump+0x1a73/0x1b90 fs/binfmt_elf.c:2142
 do_coredump+0xfeb/0x1840 fs/coredump.c:762
 get_signal+0xd65/0xff0 kernel/signal.c:2845
 arch_do_signal_or_restart+0x89/0x2a0 arch/x86/kernel/signal.c:306
 exit_to_user_mode_loop+0x6f/0xe0 kernel/entry/common.c:168
 exit_to_user_mode_prepare+0x6c/0xb0 kernel/entry/common.c:204
 irqentry_exit_to_user_mode+0x9/0x20 kernel/entry/common.c:310
 irqentry_exit+0x12/0x40 kernel/entry/common.c:413
 exc_general_protection+0x339/0x4c0 arch/x86/kernel/traps.c:728
 asm_exc_general_protection+0x26/0x30 arch/x86/include/asm/idtentry.h:564

value changed: 0x0000000000000000 -> 0xffff8881049b5c90

Reported by Kernel Concurrency Sanitizer on:
CPU: 1 PID: 15749 Comm: syz-executor.5 Tainted: G        W          6.3.0-rc6-syzkaller-00138-g44149752e998 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/30/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.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [syzbot] [block?] KCSAN: data-race in __get_task_ioprio / set_task_ioprio
  2023-04-24  7:20 [syzbot] [block?] KCSAN: data-race in __get_task_ioprio / set_task_ioprio syzbot
@ 2023-04-24  7:42 ` Dmitry Vyukov
  0 siblings, 0 replies; 2+ messages in thread
From: Dmitry Vyukov @ 2023-04-24  7:42 UTC (permalink / raw
  To: syzbot; +Cc: axboe, linux-block, linux-kernel, syzkaller-bugs

On Mon, 24 Apr 2023 at 09:20, syzbot
<syzbot+28ed267c18c614a9376f@syzkaller.appspotmail.com> wrote:
>
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit:    44149752e998 Merge tag 'cgroup-for-6.3-rc6-fixes' of git:/..
> git tree:       upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=147afc8fc80000
> kernel config:  https://syzkaller.appspot.com/x/.config?x=710057cbb8def08c
> dashboard link: https://syzkaller.appspot.com/bug?extid=28ed267c18c614a9376f
> compiler:       Debian clang version 15.0.7, GNU ld (GNU Binutils for Debian) 2.35.2
>
> Unfortunately, I don't have any reproducer for this issue yet.
>
> Downloadable assets:
> disk image: https://storage.googleapis.com/syzbot-assets/7bfa303f05cc/disk-44149752.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/4e8ea8730409/vmlinux-44149752.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/e584bce13ba7/bzImage-44149752.xz
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+28ed267c18c614a9376f@syzkaller.appspotmail.com

It looks like it can lead to reading wrong/uninit ioprio in __get_task_ioprio.
I think set_task_ioprio() should init ioprio before publishing and
publish with a release store, __get_task_ioprio needs to use load
acquire to ensure proper ordering.

> ==================================================================
> BUG: KCSAN: data-race in __get_task_ioprio / set_task_ioprio
>
> write to 0xffff888108c83888 of 8 bytes by task 15748 on cpu 0:
>  set_task_ioprio+0x23b/0x260 block/blk-ioc.c:291
>  __do_sys_ioprio_set block/ioprio.c:124 [inline]
>  __se_sys_ioprio_set+0x272/0x5a0 block/ioprio.c:68
>  __x64_sys_ioprio_set+0x43/0x50 block/ioprio.c:68
>  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
>
> read to 0xffff888108c83888 of 8 bytes by task 15749 on cpu 1:
>  __get_task_ioprio+0x1c/0x110 block/ioprio.c:150
>  get_current_ioprio include/linux/ioprio.h:60 [inline]
>  init_sync_kiocb include/linux/fs.h:2003 [inline]
>  __kernel_write_iter+0xe2/0x380 fs/read_write.c:515
>  dump_emit_page fs/coredump.c:885 [inline]
>  dump_user_range+0x258/0x480 fs/coredump.c:912
>  elf_core_dump+0x1a73/0x1b90 fs/binfmt_elf.c:2142
>  do_coredump+0xfeb/0x1840 fs/coredump.c:762
>  get_signal+0xd65/0xff0 kernel/signal.c:2845
>  arch_do_signal_or_restart+0x89/0x2a0 arch/x86/kernel/signal.c:306
>  exit_to_user_mode_loop+0x6f/0xe0 kernel/entry/common.c:168
>  exit_to_user_mode_prepare+0x6c/0xb0 kernel/entry/common.c:204
>  irqentry_exit_to_user_mode+0x9/0x20 kernel/entry/common.c:310
>  irqentry_exit+0x12/0x40 kernel/entry/common.c:413
>  exc_general_protection+0x339/0x4c0 arch/x86/kernel/traps.c:728
>  asm_exc_general_protection+0x26/0x30 arch/x86/include/asm/idtentry.h:564
>
> value changed: 0x0000000000000000 -> 0xffff8881049b5c90
>
> Reported by Kernel Concurrency Sanitizer on:
> CPU: 1 PID: 15749 Comm: syz-executor.5 Tainted: G        W          6.3.0-rc6-syzkaller-00138-g44149752e998 #0
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/30/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.
>
> --
> 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/00000000000071af7a05fa0fd8dc%40google.com.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-04-24  7:42 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-24  7:20 [syzbot] [block?] KCSAN: data-race in __get_task_ioprio / set_task_ioprio syzbot
2023-04-24  7:42 ` Dmitry Vyukov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).