Re: [syzbot] kernel BUG in __free_one_page

From: Dmitry Vyukov
Date: Mon Sep 20 2021 - 03:43:02 EST


On Mon, 20 Sept 2021 at 09:36, syzbot
<syzbot+afe1d3c5ccb5940c372a@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: d4d016caa4b8 alpha: move __udiv_qrnnd library function to ..
> git tree: upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=1564ae79300000
> kernel config: https://syzkaller.appspot.com/x/.config?x=6d93fe4341f98704
> dashboard link: https://syzkaller.appspot.com/bug?extid=afe1d3c5ccb5940c372a
> compiler: gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2
>
> Unfortunately, I don't have any reproducer for this issue yet.
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+afe1d3c5ccb5940c372a@xxxxxxxxxxxxxxxxxxxxxxxxx

Looking at the page description printed before the BUG in the console
output, I think the root cause is in +io_uring.

> io_mem_free.part.0+0xf7/0x140 fs/io_uring.c:8708
> io_mem_free fs/io_uring.c:8703 [inline]
> io_ring_ctx_free fs/io_uring.c:9250 [inline]
> io_ring_exit_work+0xf20/0x1980 fs/io_uring.c:9408
> process_one_work+0x9bf/0x16b0 kernel/workqueue.c:2297
> worker_thread+0x658/0x11f0 kernel/workqueue.c:2444
> kthread+0x3e5/0x4d0 kernel/kthread.c:319
> ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
> ------------[ cut here ]------------
> kernel BUG at mm/page_alloc.c:1073!
> invalid opcode: 0000 [#1] PREEMPT SMP KASAN
> CPU: 0 PID: 5 Comm: kworker/0:0 Not tainted 5.15.0-rc1-syzkaller #0
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
> Workqueue: mm_percpu_wq vmstat_update
> RIP: 0010:__free_one_page+0xa10/0xe30 mm/page_alloc.c:1073
> Code: 43 34 85 c0 0f 84 79 f9 ff ff 48 c7 c6 80 1b 97 89 48 89 ef e8 61 dd f6 ff 0f 0b 48 c7 c6 60 1a 97 89 4c 89 ef e8 50 dd f6 ff <0f> 0b 0f 0b 48 c7 c6 c0 1a 97 89 4c 89 ef e8 3d dd f6 ff 0f 0b 48
> RSP: 0018:ffffc90000ca7968 EFLAGS: 00010093
> RAX: 0000000000000000 RBX: ffffc90000ca7a60 RCX: 0000000000000000
> RDX: ffff888010e40000 RSI: ffffffff81b2f6b0 RDI: 0000000000000003
> RBP: 0000000000152200 R08: 0000000000000018 R09: 00000000ffffffff
> R10: ffffffff88f44b19 R11: 00000000ffffffff R12: 0000000000000009
> R13: ffffea0005488000 R14: 0000000000000000 R15: ffff88823fff8e00
> FS: 0000000000000000(0000) GS:ffff8880b9c00000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 0000000020000000 CR3: 0000000036db1000 CR4: 00000000001526f0
> Call Trace:
> free_pcppages_bulk+0x533/0x8a0 mm/page_alloc.c:1537
> drain_zone_pages+0x173/0x440 mm/page_alloc.c:3079
> refresh_cpu_vm_stats+0x355/0x5d0 mm/vmstat.c:874
> vmstat_update+0xe/0xa0 mm/vmstat.c:1910
> process_one_work+0x9bf/0x16b0 kernel/workqueue.c:2297
> worker_thread+0x658/0x11f0 kernel/workqueue.c:2444
> kthread+0x3e5/0x4d0 kernel/kthread.c:319
> ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
> Modules linked in:
> ---[ end trace e038b7c668ec2f59 ]---
> RIP: 0010:__free_one_page+0xa10/0xe30 mm/page_alloc.c:1073
> Code: 43 34 85 c0 0f 84 79 f9 ff ff 48 c7 c6 80 1b 97 89 48 89 ef e8 61 dd f6 ff 0f 0b 48 c7 c6 60 1a 97 89 4c 89 ef e8 50 dd f6 ff <0f> 0b 0f 0b 48 c7 c6 c0 1a 97 89 4c 89 ef e8 3d dd f6 ff 0f 0b 48
> RSP: 0018:ffffc90000ca7968 EFLAGS: 00010093
> RAX: 0000000000000000 RBX: ffffc90000ca7a60 RCX: 0000000000000000
> RDX: ffff888010e40000 RSI: ffffffff81b2f6b0 RDI: 0000000000000003
> RBP: 0000000000152200 R08: 0000000000000018 R09: 00000000ffffffff
> R10: ffffffff88f44b19 R11: 00000000ffffffff R12: 0000000000000009
> R13: ffffea0005488000 R14: 0000000000000000 R15: ffff88823fff8e00
> FS: 0000000000000000(0000) GS:ffff8880b9c00000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 0000000020000000 CR3: 0000000036db1000 CR4: 00000000001526f0
>
>
> ---
> 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@xxxxxxxxxxxxxxxx.
>
> 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@xxxxxxxxxxxxxxxx.
> To view this discussion on the web visit https://groups.google.com/d/msgid/syzkaller-bugs/00000000000020104105cc685624%40google.com.