Hello, kernel test robot noticed "kernel_BUG_at_mm/page_alloc.c" on: commit: f6ba7ce983a499c1f4c6066fdf135e5a2b464054 ("mm/memory: use ptdesc in __pte_alloc") https://github.com/alexshi/linux.git mmunstable3 in testcase: boot compiler: gcc-7 test machine: qemu-system-i386 -enable-kvm -cpu SandyBridge -smp 2 -m 4G (please refer to attached dmesg/kmsg for entire log/backtrace) +------------------------------------------+------------+------------+ | | c9df20367f | f6ba7ce983 | +------------------------------------------+------------+------------+ | boot_successes | 12 | 0 | | boot_failures | 0 | 12 | | kernel_BUG_at_mm/page_alloc.c | 0 | 12 | | Oops:invalid_opcode:#[##] | 0 | 12 | | EIP:free_pcppages_bulk | 0 | 12 | | Kernel_panic-not_syncing:Fatal_exception | 0 | 12 | +------------------------------------------+------------+------------+ If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <oliver.sang@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-lkp/202407221640.f6e43164-oliver.sang@xxxxxxxxx [ 0.272173][ T0] ------------[ cut here ]------------ [ 0.272588][ T0] kernel BUG at mm/page_alloc.c:779! [ 0.273141][ T0] Oops: invalid opcode: 0000 [#1] [ 0.273523][ T0] CPU: 0 PID: 0 Comm: swapper Not tainted 6.10.0-rc6-00470-gf6ba7ce983a4 #1 [ 0.274190][ T0] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014 [ 0.274992][ T0] EIP: free_pcppages_bulk (mm/page_alloc.c:779 mm/page_alloc.c:1187) [ 0.275402][ T0] Code: c4 83 e8 01 85 f8 0f 85 3d 05 00 00 8b 7d d0 8b 55 c0 89 f8 e8 a8 d2 ff ff 85 c0 74 2c 8b 45 c0 ba a4 8f 7d c3 e8 3f 39 fd ff <0f> 0b 8d 74 26 00 90 c7 45 c4 00 02 00 00 c7 45 bc 09 00 00 00 e9 All code ======== 0: c4 83 e8 01 (bad) 4: 85 f8 test %edi,%eax 6: 0f 85 3d 05 00 00 jne 0x549 c: 8b 7d d0 mov -0x30(%rbp),%edi f: 8b 55 c0 mov -0x40(%rbp),%edx 12: 89 f8 mov %edi,%eax 14: e8 a8 d2 ff ff callq 0xffffffffffffd2c1 19: 85 c0 test %eax,%eax 1b: 74 2c je 0x49 1d: 8b 45 c0 mov -0x40(%rbp),%eax 20: ba a4 8f 7d c3 mov $0xc37d8fa4,%edx 25: e8 3f 39 fd ff callq 0xfffffffffffd3969 2a:* 0f 0b ud2 <-- trapping instruction 2c: 8d 74 26 00 lea 0x0(%rsi,%riz,1),%esi 30: 90 nop 31: c7 45 c4 00 02 00 00 movl $0x200,-0x3c(%rbp) 38: c7 45 bc 09 00 00 00 movl $0x9,-0x44(%rbp) 3f: e9 .byte 0xe9 Code starting with the faulting instruction =========================================== 0: 0f 0b ud2 2: 8d 74 26 00 lea 0x0(%rsi,%riz,1),%esi 6: 90 nop 7: c7 45 c4 00 02 00 00 movl $0x200,-0x3c(%rbp) e: c7 45 bc 09 00 00 00 movl $0x9,-0x44(%rbp) 15: e9 .byte 0xe9 [ 0.276922][ T0] EAX: 00200046 EBX: eced6484 ECX: 00000002 EDX: 1ab6f52b [ 0.277466][ T0] ESI: 00000098 EDI: c4023700 EBP: c3a23eb8 ESP: c3a23e54 [ 0.278008][ T0] DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068 EFLAGS: 00210002 [ 0.278592][ T0] CR0: 80050033 CR2: ffbff000 CR3: 04244000 CR4: 000000b0 [ 0.279136][ T0] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000 [ 0.279681][ T0] DR6: fffe0ff0 DR7: 00000400 [ 0.280032][ T0] Call Trace: [ 0.280277][ T0] ? show_regs (arch/x86/kernel/dumpstack.c:478) [ 0.280597][ T0] ? __die_body (arch/x86/kernel/dumpstack.c:421) [ 0.280922][ T0] ? die (arch/x86/kernel/dumpstack.c:448) [ 0.281205][ T0] ? do_trap (arch/x86/kernel/traps.c:114 arch/x86/kernel/traps.c:155) [ 0.281520][ T0] ? do_error_trap (arch/x86/include/asm/traps.h:58 arch/x86/kernel/traps.c:176) [ 0.281866][ T0] ? free_pcppages_bulk (mm/page_alloc.c:779 mm/page_alloc.c:1187) [ 0.282264][ T0] ? exc_overflow (arch/x86/kernel/traps.c:252) [ 0.282612][ T0] ? exc_invalid_op (arch/x86/kernel/traps.c:267) [ 0.282967][ T0] ? free_pcppages_bulk (mm/page_alloc.c:779 mm/page_alloc.c:1187) [ 0.283362][ T0] ? handle_exception (arch/x86/entry/entry_32.S:1047) [ 0.283745][ T0] ? exc_overflow (arch/x86/kernel/traps.c:252) [ 0.284086][ T0] ? free_pcppages_bulk (mm/page_alloc.c:779 mm/page_alloc.c:1187) [ 0.284481][ T0] ? exc_overflow (arch/x86/kernel/traps.c:252) [ 0.284822][ T0] ? free_pcppages_bulk (mm/page_alloc.c:779 mm/page_alloc.c:1187) [ 0.285228][ T0] free_unref_page_commit (arch/x86/include/asm/bitops.h:206 arch/x86/include/asm/bitops.h:238 include/asm-generic/bitops/instrumented-non-atomic.h:142 mm/page_alloc.c:2621) [ 0.285637][ T0] free_unref_page (include/linux/spinlock.h:391 mm/page_alloc.c:2668) [ 0.285999][ T0] __free_pages (mm/page_alloc.c:4831) [ 0.286326][ T0] __pte_alloc (mm/memory.c:455) [ 0.286646][ T0] __get_locked_pte (mm/memory.c:1989 (discriminator 2)) [ 0.287000][ T0] poking_init (arch/x86/mm/init.c:842) [ 0.287321][ T0] ? mm_core_init (mm/mm_init.c:2695) [ 0.287669][ T0] start_kernel (init/main.c:964) [ 0.288011][ T0] ? load_ucode_bsp (arch/x86/kernel/cpu/microcode/core.c:135) [ 0.288373][ T0] i386_start_kernel (??:?) [ 0.288734][ T0] startup_32_smp (arch/x86/kernel/head_32.S:292) [ 0.289094][ T0] Modules linked in: [ 0.289389][ T0] ---[ end trace 0000000000000000 ]--- [ 0.289910][ T0] EIP: free_pcppages_bulk (mm/page_alloc.c:779 mm/page_alloc.c:1187) [ 0.290491][ T0] Code: c4 83 e8 01 85 f8 0f 85 3d 05 00 00 8b 7d d0 8b 55 c0 89 f8 e8 a8 d2 ff ff 85 c0 74 2c 8b 45 c0 ba a4 8f 7d c3 e8 3f 39 fd ff <0f> 0b 8d 74 26 00 90 c7 45 c4 00 02 00 00 c7 45 bc 09 00 00 00 e9 All code ======== 0: c4 83 e8 01 (bad) 4: 85 f8 test %edi,%eax 6: 0f 85 3d 05 00 00 jne 0x549 c: 8b 7d d0 mov -0x30(%rbp),%edi f: 8b 55 c0 mov -0x40(%rbp),%edx 12: 89 f8 mov %edi,%eax 14: e8 a8 d2 ff ff callq 0xffffffffffffd2c1 19: 85 c0 test %eax,%eax 1b: 74 2c je 0x49 1d: 8b 45 c0 mov -0x40(%rbp),%eax 20: ba a4 8f 7d c3 mov $0xc37d8fa4,%edx 25: e8 3f 39 fd ff callq 0xfffffffffffd3969 2a:* 0f 0b ud2 <-- trapping instruction 2c: 8d 74 26 00 lea 0x0(%rsi,%riz,1),%esi 30: 90 nop 31: c7 45 c4 00 02 00 00 movl $0x200,-0x3c(%rbp) 38: c7 45 bc 09 00 00 00 movl $0x9,-0x44(%rbp) 3f: e9 .byte 0xe9 Code starting with the faulting instruction =========================================== 0: 0f 0b ud2 2: 8d 74 26 00 lea 0x0(%rsi,%riz,1),%esi 6: 90 nop 7: c7 45 c4 00 02 00 00 movl $0x200,-0x3c(%rbp) e: c7 45 bc 09 00 00 00 movl $0x9,-0x44(%rbp) 15: e9 .byte 0xe9 The kernel config and materials to reproduce are available at: https://download.01.org/0day-ci/archive/20240722/202407221640.f6e43164-oliver.sang@xxxxxxxxx -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki