Re: [mm] 8e63b8bbd7: WARNING:at_mm/memory.c:#__apply_to_page_range

From: Nicholas Piggin
Date: Sat Aug 22 2020 - 02:19:52 EST


Excerpts from kernel test robot's message of August 22, 2020 9:24 am:
> Greeting,
>
> FYI, we noticed the following commit (built with gcc-9):
>
> commit: 8e63b8bbd7d17f64ced151cebd151a2cd9f63c64 ("[PATCH v5 2/8] mm: apply_to_pte_range warn and fail if a large pte is encountered")
> url: https://github.com/0day-ci/linux/commits/Nicholas-Piggin/huge-vmalloc-mappings/20200821-124543
> base: https://git.kernel.org/cgit/linux/kernel/git/powerpc/linux.git next
>
> in testcase: boot
>
> on test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 8G
>
> caused below changes (please refer to attached dmesg/kmsg for entire log/backtrace):
>
>
> +-----------------------------------------------+------------+------------+
> | | 185311995a | 8e63b8bbd7 |
> +-----------------------------------------------+------------+------------+
> | boot_successes | 4 | 0 |
> | boot_failures | 0 | 4 |
> | WARNING:at_mm/memory.c:#__apply_to_page_range | 0 | 4 |
> | RIP:__apply_to_page_range | 0 | 4 |
> +-----------------------------------------------+------------+------------+
>
>
> If you fix the issue, kindly add following tag
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
>
>
> [ 0.786159] WARNING: CPU: 0 PID: 0 at mm/memory.c:2269 __apply_to_page_range+0x537/0x9c0

Hmm, I wonder if that's WARN_ON_ONCE(pmd_bad(*pmd))), which would be
odd. I don't know x86 asm well enough to see what the *pmd value would
be there.

I'll try to reproduce and work out what's going on.

Thanks,
Nick


> [ 0.786675] Modules linked in:
> [ 0.786888] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.9.0-rc1-00002-g8e63b8bbd7d17f #2
> [ 0.787402] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014
> [ 0.787935] RIP: 0010:__apply_to_page_range+0x537/0x9c0
> [ 0.788280] Code: 8b 5c 24 50 48 39 5c 24 38 0f 84 6b 03 00 00 4c 8b 74 24 38 e9 63 fb ff ff 84 d2 0f 84 ba 01 00 00 48 8b 1c 24 e9 3c fe ff ff <0f> 0b 45 84 ed 0f 84 08 01 00 00 48 89 ef e8 8f 8f 02 00 48 89 e8
> [ 0.789467] RSP: 0000:ffffffff83e079d0 EFLAGS: 00010293
> [ 0.789805] RAX: 0000000000000000 RBX: fffff52000001000 RCX: 000fffffffe00000
> [ 0.790260] RDX: 0000000000000000 RSI: 000ffffffffff000 RDI: 0000000000000000
> [ 0.790724] RBP: ffff888107408000 R08: 0000000000000001 R09: 0000000107408000
> [ 0.791179] R10: ffffffff840dcb5b R11: fffffbfff081b96b R12: fffff520001fffff
> [ 0.791634] R13: 0000000000000001 R14: fffff52000000000 R15: dffffc0000000000
> [ 0.792090] FS: 0000000000000000(0000) GS:ffff8881eae00000(0000) knlGS:0000000000000000
> [ 0.792607] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 0.792977] CR2: ffff88823ffff000 CR3: 0000000003e14000 CR4: 00000000000406b0
> [ 0.793433] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [ 0.793889] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> [ 0.794344] Call Trace:
> [ 0.794517] ? memset+0x40/0x40
> [ 0.794745] alloc_vmap_area+0x7a9/0x2280
> [ 0.795054] ? trace_hardirqs_on+0x4f/0x2e0
> [ 0.795354] ? _raw_spin_unlock_irqrestore+0x39/0x60
> [ 0.795682] ? free_vmap_area+0x1a20/0x1a20
> [ 0.795959] ? __kasan_kmalloc+0xbf/0xe0
> [ 0.796292] __get_vm_area_node+0xd1/0x300
> [ 0.796605] get_vm_area_caller+0x2d/0x40
> [ 0.796872] ? acpi_os_map_iomem+0x3c3/0x4e0
> [ 0.797155] __ioremap_caller+0x1d8/0x480
> [ 0.797486] ? acpi_os_map_iomem+0x3c3/0x4e0
> [ 0.797770] ? iounmap+0x160/0x160
> [ 0.798002] ? __kasan_kmalloc+0xbf/0xe0
> [ 0.798335] acpi_os_map_iomem+0x3c3/0x4e0
> [ 0.798612] acpi_tb_acquire_table+0xb3/0x1c5
> [ 0.798910] acpi_tb_validate_table+0x68/0xbf
> [ 0.799199] acpi_tb_verify_temp_table+0xa1/0x640
> [ 0.799512] ? __down_trylock_console_sem+0x7a/0xa0
> [ 0.799833] ? acpi_tb_validate_temp_table+0x9d/0x9d
> [ 0.800159] ? acpi_ut_init_stack_ptr_trace+0xaa/0xaa
> [ 0.800490] ? vprintk_emit+0x10b/0x2a0
> [ 0.800748] ? acpi_ut_acquire_mutex+0x1d7/0x32f
> [ 0.801056] acpi_reallocate_root_table+0x339/0x385
> [ 0.801377] ? acpi_tb_parse_root_table+0x5a5/0x5a5
> [ 0.801700] ? dmi_matches+0xc6/0x120
> [ 0.801968] acpi_early_init+0x116/0x3ae
> [ 0.802230] start_kernel+0x2f7/0x39f
> [ 0.802477] secondary_startup_64+0xa4/0xb0
> [ 0.802770] irq event stamp: 5137
> [ 0.802992] hardirqs last enabled at (5145): [<ffffffff81295652>] console_unlock+0x632/0xa00
> [ 0.803539] hardirqs last disabled at (5152): [<ffffffff81295100>] console_unlock+0xe0/0xa00
> [ 0.804082] softirqs last enabled at (4430): [<ffffffff81b5152f>] irq_read_recursion_soft_321+0xcf/0x160
> [ 0.804694] softirqs last disabled at (4428): [<ffffffff81b5152f>] irq_read_recursion_soft_321+0xcf/0x160
> [ 0.805311] ---[ end trace 1234c082d7e7fd6f ]---
>
>
> To reproduce:
>
> # build kernel
> cd linux
> cp config-5.9.0-rc1-00002-g8e63b8bbd7d17f .config
> make HOSTCC=gcc-9 CC=gcc-9 ARCH=x86_64 olddefconfig prepare modules_prepare bzImage
>
> git clone https://github.com/intel/lkp-tests.git
> cd lkp-tests
> bin/lkp qemu -k <bzImage> job-script # job-script is attached in this email
>
>
>
> Thanks,
> lkp
>
>