From: Li Xinhai <lixinhai.lxh@gmail.com>
To: syzbot <syzbot+9b83ff893245a25c320e@syzkaller.appspotmail.com>,
akpm@linux-foundation.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org, sfr@canb.auug.org.au,
syzkaller-bugs@googlegroups.com
Subject: Re: kernel BUG in split_huge_page_to_list
Date: Mon, 25 Jan 2021 11:26:09 +0800 [thread overview]
Message-ID: <1c9aa71b-51bf-eb17-4521-4cbe602f296c@gmail.com> (raw)
In-Reply-To: <000000000000c21dd605b9a42d3f@google.com>
On 1/24/21 8:01 PM, syzbot wrote:
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: 647060f3 Add linux-next specific files for 20210120
> git tree: linux-next
> console output: https://syzkaller.appspot.com/x/log.txt?x=16f0353f500000
> kernel config: https://syzkaller.appspot.com/x/.config?x=8f8a72b7e5067002
> dashboard link: https://syzkaller.appspot.com/bug?extid=9b83ff893245a25c320e
> compiler: gcc (GCC) 10.1.0-syz 20200507
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=143d7e3b500000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=17652feb500000
>
It looks like a new page been mapped by the old vma, which happen
- after the existing page table entry moved from old vma to new vma;
- before unlinking anon_vma from old vma;
So this new page's ->mapping still points to the anon_vma which been
unlinked by the old vma. later, rmap path would not be able to find
mapped entries of this page.
Any hints about above scenario? I suppose it only possible for THP
pages and not happen through page fault path. Thanks.
> The issue was bisected to:
>
> commit fbdbae3da30a149a55a5f1883bbbe17a27660e05
> Author: Li Xinhai <lixinhai.lxh@gmail.com>
> Date: Tue Jan 19 21:54:00 2021 +0000
>
> mm: mremap: unlink anon_vmas when mremap with MREMAP_DONTUNMAP success
>
> bisection log: https://syzkaller.appspot.com/x/bisect.txt?x=16cad100d00000
> final oops: https://syzkaller.appspot.com/x/report.txt?x=15cad100d00000
> console output: https://syzkaller.appspot.com/x/log.txt?x=11cad100d00000
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+9b83ff893245a25c320e@syzkaller.appspotmail.com
> Fixes: fbdbae3da30a ("mm: mremap: unlink anon_vmas when mremap with MREMAP_DONTUNMAP success")
>
> head:00000000091c6650 order:9 compound_mapcount:0 compound_pincount:0
> memcg:ffff888010d0a000
> anon flags: 0xfff0000009001d(locked|uptodate|dirty|lru|head|swapbacked)
> raw: 00fff0000009001d ffffea0000bc51c8 ffff888010201800 ffff88802575d801
> raw: 0000000000020e00 0000000000000000 000001fc00000000 ffff888010d0a000
> page dumped because: VM_BUG_ON_PAGE(!unmap_success)
> ------------[ cut here ]------------
> kernel BUG at mm/huge_memory.c:2351!
> invalid opcode: 0000 [#1] PREEMPT SMP KASAN
> CPU: 0 PID: 8483 Comm: syz-executor525 Not tainted 5.11.0-rc4-next-20210120-syzkaller #0
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
> RIP: 0010:unmap_page mm/huge_memory.c:2351 [inline]
> RIP: 0010:split_huge_page_to_list+0x1f02/0x43b0 mm/huge_memory.c:2720
> Code: ef e8 82 46 ea ff 0f 0b e8 ab 69 b9 ff 4c 8d 73 ff e9 56 ea ff ff e8 9d 69 b9 ff 48 c7 c6 40 69 57 89 48 89 ef e8 5e 46 ea ff <0f> 0b e8 87 69 b9 ff 4c 8d 75 ff e9 28 e9 ff ff e8 79 69 b9 ff 49
> RSP: 0018:ffffc9000168f7a0 EFLAGS: 00010282
> RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
> RDX: ffff88801e2d5400 RSI: ffffffff88bcc6c7 RDI: fffff520002d1e8e
> RBP: ffffea0000ca8000 R08: 0000000000000033 R09: 0000000000000000
> R10: ffffffff815b136e R11: 0000000000000000 R12: ffff888010d0ae60
> R13: ffffea0000ca8000 R14: 000000000000018c R15: 0000000000000000
> FS: 000000000154e880(0000) GS:ffff8880b9e00000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 00007fcc655666c0 CR3: 0000000012e9a000 CR4: 00000000001506f0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> Call Trace:
> split_huge_page include/linux/huge_mm.h:187 [inline]
> madvise_free_pte_range+0x736/0x1ee0 mm/madvise.c:633
> walk_pmd_range mm/pagewalk.c:89 [inline]
> walk_pud_range mm/pagewalk.c:160 [inline]
> walk_p4d_range mm/pagewalk.c:193 [inline]
> walk_pgd_range mm/pagewalk.c:229 [inline]
> __walk_page_range+0xe20/0x1ea0 mm/pagewalk.c:331
> walk_page_range+0x20d/0x400 mm/pagewalk.c:427
> madvise_free_single_vma+0x383/0x550 mm/madvise.c:731
> madvise_dontneed_free mm/madvise.c:819 [inline]
> madvise_vma mm/madvise.c:936 [inline]
> do_madvise.part.0+0x4e4/0x1ed0 mm/madvise.c:1132
> do_madvise mm/madvise.c:1158 [inline]
> __do_sys_madvise mm/madvise.c:1158 [inline]
> __se_sys_madvise mm/madvise.c:1156 [inline]
> __x64_sys_madvise+0x113/0x150 mm/madvise.c:1156
> do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
> entry_SYSCALL_64_after_hwframe+0x44/0xa9
> RIP: 0033:0x440219
> 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 7b 13 fc ff c3 66 2e 0f 1f 84 00 00 00 00
> RSP: 002b:00007ffc51b58b98 EFLAGS: 00000246 ORIG_RAX: 000000000000001c
> RAX: ffffffffffffffda RBX: 00000000004002c8 RCX: 0000000000440219
> RDX: 0000000000000008 RSI: 0000000000c00000 RDI: 0000000020400000
> RBP: 00000000006ca018 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000020ffc000 R11: 0000000000000246 R12: 0000000000401a20
> R13: 0000000000401ab0 R14: 0000000000000000 R15: 0000000000000000
> Modules linked in:
> ---[ end trace 7812a13de61fd12e ]---
> RIP: 0010:unmap_page mm/huge_memory.c:2351 [inline]
> RIP: 0010:split_huge_page_to_list+0x1f02/0x43b0 mm/huge_memory.c:2720
> Code: ef e8 82 46 ea ff 0f 0b e8 ab 69 b9 ff 4c 8d 73 ff e9 56 ea ff ff e8 9d 69 b9 ff 48 c7 c6 40 69 57 89 48 89 ef e8 5e 46 ea ff <0f> 0b e8 87 69 b9 ff 4c 8d 75 ff e9 28 e9 ff ff e8 79 69 b9 ff 49
> RSP: 0018:ffffc9000168f7a0 EFLAGS: 00010282
> RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
> RDX: ffff88801e2d5400 RSI: ffffffff88bcc6c7 RDI: fffff520002d1e8e
> RBP: ffffea0000ca8000 R08: 0000000000000033 R09: 0000000000000000
> R10: ffffffff815b136e R11: 0000000000000000 R12: ffff888010d0ae60
> R13: ffffea0000ca8000 R14: 000000000000018c R15: 0000000000000000
> FS: 000000000154e880(0000) GS:ffff8880b9e00000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 00007fcc655666c0 CR3: 0000000012e9a000 CR4: 00000000001506f0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
>
>
> ---
> 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.
> For information about bisection process see: https://goo.gl/tpsmEJ#bisection
> syzbot can test patches for this issue, for details see:
> https://goo.gl/tpsmEJ#testing-patches
>
prev parent reply other threads:[~2021-01-25 3:26 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-24 12:01 kernel BUG in split_huge_page_to_list syzbot
2021-01-25 3:26 ` Li Xinhai [this message]
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=1c9aa71b-51bf-eb17-4521-4cbe602f296c@gmail.com \
--to=lixinhai.lxh@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=sfr@canb.auug.org.au \
--cc=syzbot+9b83ff893245a25c320e@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.