Re: [Syzkaller & bisect] There is "copy_page_range WARNING" in v6.1-rc8 and v6.1

From: Pengfei Xu
Date: Wed Dec 14 2022 - 20:50:53 EST


Hi Peter,

On 2022-12-14 at 10:19:53 -0500, Peter Xu wrote:
> On Wed, Dec 14, 2022 at 03:36:15PM +0800, Pengfei Xu wrote:
> > Hi Peter and memory expert,
>
> Pengfei,
>
> >
> > It's a soft remind.
> > There is "copy_page_range WARNING" in v6.1-rc8 and v6.1.
> > [ 28.138268] ------------[ cut here ]------------
> > [ 28.138277] WARNING: CPU: 1 PID: 568 at mm/memory.c:874 copy_page_range+0x1858/0x2960
> > [ 28.139002] Modules linked in:
> > [ 28.139219] CPU: 1 PID: 568 Comm: repro Not tainted 5.19.0-rc1-6ff40f00e5a4+ #1
> > [ 28.139706] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org 04/01/2014
> > [ 28.140306] RIP: 0010:copy_page_range+0x1858/0x2960
> > [ 28.140584] Code: 5b e2 ff 41 83 fc 1e 0f 85 b1 fe ff ff e8 00 5a e2 ff 31 ff 4c 89 ee e8 26 5b e2 ff 4d 85 ed 0f 85 b6 fe ff ff e8 e8 59 e2 ff <0f> 0b e9 aa 5
> > [ 28.141550] RSP: 0018:ffffc90000c9baf0 EFLAGS: 00010246
> > [ 28.141838] RAX: 0000000000000000 RBX: f7fffffffffffc00 RCX: ffffffff81415aba
> > [ 28.142229] RDX: 0000000000000000 RSI: ffff888007e28000 RDI: 0000000000000002
> > [ 28.142612] RBP: ffffc90000c9bc98 R08: 0000000000000040 R09: 0000000000000000
> > [ 28.142996] R10: 0000000000000001 R11: ffffea00002ab580 R12: 000000000000001e
> > [ 28.143405] R13: 0000000000000000 R14: 0000000000000004 R15: 0000000000000000
> > [ 28.143905] FS: 00007f5b23733740(0000) GS:ffff88807dd00000(0000) knlGS:0000000000000000
> > [ 28.144335] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > [ 28.144648] CR2: 00000000200000c0 CR3: 0000000007d5c005 CR4: 0000000000770ee0
> > [ 28.145032] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > [ 28.145413] DR3: 0000000000000000 DR6: 00000000ffff07f0 DR7: 0000000000000400
> > [ 28.145791] PKRU: 55555554
> > [ 28.145946] Call Trace:
> > [ 28.146097] <TASK>
> > [ 28.146242] dup_mm+0x689/0x900
> > [ 28.146436] copy_process+0x1ade/0x23e0
> > [ 28.146656] ? __sanitizer_cov_trace_pc+0x25/0x50
> > [ 28.146928] kernel_clone+0x90/0x670
> > [ 28.147152] ? userfaultfd_ioctl+0xd2/0x23c0
> > [ 28.147491] __do_sys_clone+0xa2/0xd0
> > [ 28.147779] __x64_sys_clone+0x2f/0x40
> > [ 28.148023] do_syscall_64+0x3b/0x90
> > [ 28.148243] entry_SYSCALL_64_after_hwframe+0x46/0xb0
> > [ 28.148538] RIP: 0033:0x7f5b2385859d
> > [ 28.148749] Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 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 8
> > [ 28.149722] RSP: 002b:00007ffc5a2e6b58 EFLAGS: 00000202 ORIG_RAX: 0000000000000038
> > [ 28.150133] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f5b2385859d
> > [ 28.150555] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000001000
> > [ 28.150938] RBP: 00007ffc5a2e6ba0 R08: 0000000000000000 R09: 0000000000000000
> > [ 28.151340] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000401060
> > [ 28.151846] R13: 00007ffc5a2e6ca0 R14: 0000000000000000 R15: 0000000000000000
> > [ 28.152230] </TASK>
> > [ 28.152363] ---[ end trace 0000000000000000 ]---
> >
> > This issue could be reproduced in v6.1 kernel in guest also.
> >
> > Bisected and found that bad commit was:
> > "
> > 81e0f15f2ef6dad7ccb9c03d8e61ef7ded836b38
> > mm: enable PTE markers by default
> > "
> >
> > After reverted above commit on top of v6.1-rc8 kernel, this issue was gone.
> >
> > All detailed bisect info, reproduced code and kconfig are in link:
> > https://github.com/xupengfe/syzkaller_logs/tree/main/221208_115556_copy_page_range
> >
> >
> > If the info was helpful and it's fixed, please added the Reported tag from me.
>
> I think the warning was improper indeed as when without UFFD_EVENT_FORK
> registered dst_vma will not inherit VM_UFFD_WP.
>
> This also reminded me that this can also trigger after the swapin error
> replacement using pte markers when there's the swapin error markers and if
> we fork() we may hit the same thing.
>
> I'll post a fix soon. Thanks for the report.

Thanks for your quick response and solution! I'm glad it's helpful.

Thanks!
BR.

>
> --
> Peter Xu
>