* linux-next: boot failure after merge of the memblock tree @ 2024-10-22 6:39 Stephen Rothwell 2024-10-23 3:20 ` Su Hua 2024-10-25 6:53 ` Mike Rapoport 0 siblings, 2 replies; 11+ messages in thread From: Stephen Rothwell @ 2024-10-22 6:39 UTC (permalink / raw) To: Mike Rapoport; +Cc: Hua Su, Linux Kernel Mailing List, Linux Next Mailing List [-- Attachment #1: Type: text/plain, Size: 2539 bytes --] Hi all, After merging the memblock tree, today's linux-next build (powerpc_pseries_le_defconfig) failed my qemu boot test like this: mem auto-init: stack:all(zero), heap alloc:off, heap free:off BUG: Unable to handle kernel data access on read at 0x00001878 Faulting instruction address: 0xc0000000004f00e4 Oops: Kernel access of bad area, sig: 7 [#1] LE PAGE_SIZE=4K MMU=Radix SMP NR_CPUS=2048 NUMA pSeries Modules linked in: CPU: 0 UID: 0 PID: 0 Comm: swapper Not tainted 6.12.0-rc4-06078-g367eaba2691a #1 Hardware name: IBM pSeries (emulated by qemu) POWER10 (architected) 0x801200 0xf000006 of:SLOF,HEAD pSeries NIP: c0000000004f00e4 LR: c000000000489df8 CTR: 0000000000000000 REGS: c0000000028cfae0 TRAP: 0300 Not tainted (6.12.0-rc4-06078-g367eaba2691a) MSR: 8000000002001033 <SF,VEC,ME,IR,DR,RI,LE> CR: 84000240 XER: 00000000 CFAR: c0000000004f2c48 DAR: 0000000000001878 DSISR: 00080000 IRQMASK: 3 GPR00: c00000000204994c c0000000028cfd80 c0000000016a4300 c00c000000040000 GPR04: 0000000000000001 0000000000001000 0000000000000007 c000000002a11178 GPR08: 0000000000000000 0000000000001800 c00000007fffe720 0000000000002001 GPR12: 0000000000000000 c000000002a6a000 0000000000000000 00000000018855c0 GPR16: c000000002940270 c00c000000000000 0000000000040000 0000000000000000 GPR20: 0000000000000000 ffffffffffffffff 0000000000000001 ffffffffffffffff GPR24: 00c0000000000000 0000000000000000 0000000000000000 0000000008000000 GPR28: 0000000000000000 0000000000002a6b 0000000000000000 0000000000001000 NIP [c0000000004f00e4] set_pfnblock_flags_mask+0x74/0x140 LR [c000000000489df8] reserve_bootmem_region+0x2a8/0x2c0 Call Trace: c0000000028cfd80] [c0000000028cfdd0] 0xc0000000028cfdd0 (unreliable) c0000000028cfe20] [c00000000204994c] memblock_free_all+0x144/0x2d0 c0000000028cfea0] [c000000002016354] mem_init+0x5c/0x70 c0000000028cfec0] [c00000000204547c] mm_core_init+0x158/0x1dc c0000000028cff30] [c000000002004350] start_kernel+0x608/0x944 c0000000028cffe0] [c00000000000e99c] start_here_common+0x1c/0x20 Code: 4182000c 79082d28 7d4a4214 e9230000 3d020137 38e8ce78 79284620 792957a0 79081f24 79295d24 7d07402a 7d284a14 <e9090078> 7c254040 41800094 e9290088 ---[ end trace 0000000000000000 ]--- Kernel panic - not syncing: Attempted to kill the idle task! Caused by commit ad48825232a9 ("memblock: uniformly initialize all reserved pages to MIGRATE_MOVABLE") I bisected the failure to this commit and have reverted it for today. -- Cheers, Stephen Rothwell [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: linux-next: boot failure after merge of the memblock tree 2024-10-22 6:39 linux-next: boot failure after merge of the memblock tree Stephen Rothwell @ 2024-10-23 3:20 ` Su Hua 2024-10-23 22:23 ` Stephen Rothwell 2024-10-25 6:53 ` Mike Rapoport 1 sibling, 1 reply; 11+ messages in thread From: Su Hua @ 2024-10-23 3:20 UTC (permalink / raw) To: Stephen Rothwell Cc: Mike Rapoport, Linux Kernel Mailing List, Linux Next Mailing List Stephen Rothwell <sfr@canb.auug.org.au> 于2024年10月22日周二 14:39写道: > > Hi all, > > After merging the memblock tree, today's linux-next build > (powerpc_pseries_le_defconfig) failed my qemu boot test like this: > > mem auto-init: stack:all(zero), heap alloc:off, heap free:off > BUG: Unable to handle kernel data access on read at 0x00001878 > Faulting instruction address: 0xc0000000004f00e4 > Oops: Kernel access of bad area, sig: 7 [#1] > LE PAGE_SIZE=4K MMU=Radix SMP NR_CPUS=2048 NUMA pSeries > Modules linked in: > CPU: 0 UID: 0 PID: 0 Comm: swapper Not tainted 6.12.0-rc4-06078-g367eaba2691a #1 > Hardware name: IBM pSeries (emulated by qemu) POWER10 (architected) 0x801200 0xf000006 of:SLOF,HEAD pSeries > NIP: c0000000004f00e4 LR: c000000000489df8 CTR: 0000000000000000 > REGS: c0000000028cfae0 TRAP: 0300 Not tainted (6.12.0-rc4-06078-g367eaba2691a) > MSR: 8000000002001033 <SF,VEC,ME,IR,DR,RI,LE> CR: 84000240 XER: 00000000 > CFAR: c0000000004f2c48 DAR: 0000000000001878 DSISR: 00080000 IRQMASK: 3 > GPR00: c00000000204994c c0000000028cfd80 c0000000016a4300 c00c000000040000 > GPR04: 0000000000000001 0000000000001000 0000000000000007 c000000002a11178 > GPR08: 0000000000000000 0000000000001800 c00000007fffe720 0000000000002001 > GPR12: 0000000000000000 c000000002a6a000 0000000000000000 00000000018855c0 > GPR16: c000000002940270 c00c000000000000 0000000000040000 0000000000000000 > GPR20: 0000000000000000 ffffffffffffffff 0000000000000001 ffffffffffffffff > GPR24: 00c0000000000000 0000000000000000 0000000000000000 0000000008000000 > GPR28: 0000000000000000 0000000000002a6b 0000000000000000 0000000000001000 > NIP [c0000000004f00e4] set_pfnblock_flags_mask+0x74/0x140 > LR [c000000000489df8] reserve_bootmem_region+0x2a8/0x2c0 > Call Trace: > c0000000028cfd80] [c0000000028cfdd0] 0xc0000000028cfdd0 (unreliable) > c0000000028cfe20] [c00000000204994c] memblock_free_all+0x144/0x2d0 > c0000000028cfea0] [c000000002016354] mem_init+0x5c/0x70 > c0000000028cfec0] [c00000000204547c] mm_core_init+0x158/0x1dc > c0000000028cff30] [c000000002004350] start_kernel+0x608/0x944 > c0000000028cffe0] [c00000000000e99c] start_here_common+0x1c/0x20 > Code: 4182000c 79082d28 7d4a4214 e9230000 3d020137 38e8ce78 79284620 792957a0 79081f24 79295d24 7d07402a 7d284a14 <e9090078> 7c254040 41800094 e9290088 > ---[ end trace 0000000000000000 ]--- > > Kernel panic - not syncing: Attempted to kill the idle task! > > Caused by commit > > ad48825232a9 ("memblock: uniformly initialize all reserved pages to MIGRATE_MOVABLE") > > I bisected the failure to this commit and have reverted it for today. > > -- > Cheers, > Stephen Rothwell Thanks, I'd also like to set up the environment for testing; could you please share the command line instructions or XML files used for testing? Sincerely yours, Su ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: linux-next: boot failure after merge of the memblock tree 2024-10-23 3:20 ` Su Hua @ 2024-10-23 22:23 ` Stephen Rothwell 2024-10-24 3:18 ` Su Hua 0 siblings, 1 reply; 11+ messages in thread From: Stephen Rothwell @ 2024-10-23 22:23 UTC (permalink / raw) To: Su Hua; +Cc: Mike Rapoport, Linux Kernel Mailing List, Linux Next Mailing List [-- Attachment #1: Type: text/plain, Size: 655 bytes --] Hi, On Wed, 23 Oct 2024 11:20:43 +0800 Su Hua <suhua.tanke@gmail.com> wrote: > > Thanks, I'd also like to set up the environment for testing; could you > please share the command line instructions or XML files used for > testing? Sorry for the delay. I run the following qemu command line: qemu-system-ppc64 -M pseries -m 2G -vga none -nographic -kernel $vmlinux -initrd $initrd where $vmlinux is the result of a PowerPC pseries_le_defconfig build and $initrd is just sufficient to get into user mode and then shutdown again. This latter is not really relevant here since we don't get to user mode. -- Cheers, Stephen Rothwell [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: linux-next: boot failure after merge of the memblock tree 2024-10-23 22:23 ` Stephen Rothwell @ 2024-10-24 3:18 ` Su Hua 0 siblings, 0 replies; 11+ messages in thread From: Su Hua @ 2024-10-24 3:18 UTC (permalink / raw) To: Stephen Rothwell Cc: Mike Rapoport, Linux Kernel Mailing List, Linux Next Mailing List > Stephen Rothwell <sfr@canb.auug.org.au> 于2024年10月24日周四 06:23写道: > > > > Hi, > > > > On Wed, 23 Oct 2024 11:20:43 +0800 Su Hua <suhua.tanke@gmail.com> wrote: > > > > > > Thanks, I'd also like to set up the environment for testing; could you > > > please share the command line instructions or XML files used for > > > testing? > > > > Sorry for the delay. I run the following qemu command line: > > > > qemu-system-ppc64 -M pseries -m 2G -vga none -nographic -kernel $vmlinux -initrd $initrd > > > > where $vmlinux is the result of a PowerPC pseries_le_defconfig build > > and $initrd is just sufficient to get into user mode and then shutdown > > again. This latter is not really relevant here since we don't get to > > user mode. Received, thank you. Sincerely yours, Su ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: linux-next: boot failure after merge of the memblock tree 2024-10-22 6:39 linux-next: boot failure after merge of the memblock tree Stephen Rothwell 2024-10-23 3:20 ` Su Hua @ 2024-10-25 6:53 ` Mike Rapoport 2024-10-25 8:19 ` Su Hua 1 sibling, 1 reply; 11+ messages in thread From: Mike Rapoport @ 2024-10-25 6:53 UTC (permalink / raw) To: Stephen Rothwell Cc: Hua Su, Linux Kernel Mailing List, Linux Next Mailing List Hi Stephen, On Tue, Oct 22, 2024 at 05:39:21PM +1100, Stephen Rothwell wrote: > Hi all, > > After merging the memblock tree, today's linux-next build > (powerpc_pseries_le_defconfig) failed my qemu boot test like this: > > mem auto-init: stack:all(zero), heap alloc:off, heap free:off > BUG: Unable to handle kernel data access on read at 0x00001878 > Faulting instruction address: 0xc0000000004f00e4 > Oops: Kernel access of bad area, sig: 7 [#1] > LE PAGE_SIZE=4K MMU=Radix SMP NR_CPUS=2048 NUMA pSeries > Modules linked in: > CPU: 0 UID: 0 PID: 0 Comm: swapper Not tainted 6.12.0-rc4-06078-g367eaba2691a #1 > Hardware name: IBM pSeries (emulated by qemu) POWER10 (architected) 0x801200 0xf000006 of:SLOF,HEAD pSeries > NIP: c0000000004f00e4 LR: c000000000489df8 CTR: 0000000000000000 > REGS: c0000000028cfae0 TRAP: 0300 Not tainted (6.12.0-rc4-06078-g367eaba2691a) > MSR: 8000000002001033 <SF,VEC,ME,IR,DR,RI,LE> CR: 84000240 XER: 00000000 > CFAR: c0000000004f2c48 DAR: 0000000000001878 DSISR: 00080000 IRQMASK: 3 > GPR00: c00000000204994c c0000000028cfd80 c0000000016a4300 c00c000000040000 > GPR04: 0000000000000001 0000000000001000 0000000000000007 c000000002a11178 > GPR08: 0000000000000000 0000000000001800 c00000007fffe720 0000000000002001 > GPR12: 0000000000000000 c000000002a6a000 0000000000000000 00000000018855c0 > GPR16: c000000002940270 c00c000000000000 0000000000040000 0000000000000000 > GPR20: 0000000000000000 ffffffffffffffff 0000000000000001 ffffffffffffffff > GPR24: 00c0000000000000 0000000000000000 0000000000000000 0000000008000000 > GPR28: 0000000000000000 0000000000002a6b 0000000000000000 0000000000001000 > NIP [c0000000004f00e4] set_pfnblock_flags_mask+0x74/0x140 > LR [c000000000489df8] reserve_bootmem_region+0x2a8/0x2c0 > Call Trace: > c0000000028cfd80] [c0000000028cfdd0] 0xc0000000028cfdd0 (unreliable) > c0000000028cfe20] [c00000000204994c] memblock_free_all+0x144/0x2d0 > c0000000028cfea0] [c000000002016354] mem_init+0x5c/0x70 > c0000000028cfec0] [c00000000204547c] mm_core_init+0x158/0x1dc > c0000000028cff30] [c000000002004350] start_kernel+0x608/0x944 > c0000000028cffe0] [c00000000000e99c] start_here_common+0x1c/0x20 > Code: 4182000c 79082d28 7d4a4214 e9230000 3d020137 38e8ce78 79284620 792957a0 79081f24 79295d24 7d07402a 7d284a14 <e9090078> 7c254040 41800094 e9290088 > ---[ end trace 0000000000000000 ]--- > > Kernel panic - not syncing: Attempted to kill the idle task! > > Caused by commit > > ad48825232a9 ("memblock: uniformly initialize all reserved pages to MIGRATE_MOVABLE") > > I bisected the failure to this commit and have reverted it for today. Apparently set_pfnblock_flags_mask() is unhappy when called for uninitialized struct page. With the patch below qemu-system-ppc64el -M pseries -cpu power10 -smp 16 -m 32G -vga none -nographic -kernel $KERNEL boots up to mounting root filesystem. diff --git a/mm/mm_init.c b/mm/mm_init.c index 49dbd30e71ad..2395970314e7 100644 --- a/mm/mm_init.c +++ b/mm/mm_init.c @@ -723,10 +723,10 @@ static void __meminit init_reserved_page(unsigned long pfn, int nid) break; } + __init_single_page(pfn_to_page(pfn), pfn, zid, nid); + if (pageblock_aligned(pfn)) set_pageblock_migratetype(pfn_to_page(pfn), MIGRATE_MOVABLE); - - __init_single_page(pfn_to_page(pfn), pfn, zid, nid); } #else static inline void pgdat_set_deferred_range(pg_data_t *pgdat) {} > -- > Cheers, > Stephen Rothwell -- Sincerely yours, Mike. ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: linux-next: boot failure after merge of the memblock tree 2024-10-25 6:53 ` Mike Rapoport @ 2024-10-25 8:19 ` Su Hua 2024-10-25 8:33 ` Su Hua 0 siblings, 1 reply; 11+ messages in thread From: Su Hua @ 2024-10-25 8:19 UTC (permalink / raw) To: Mike Rapoport Cc: Stephen Rothwell, Linux Kernel Mailing List, Linux Next Mailing List Appreciate everyone. Mike Rapoport <rppt@kernel.org> 于2024年10月25日周五 14:57写道: > > Hi Stephen, > > On Tue, Oct 22, 2024 at 05:39:21PM +1100, Stephen Rothwell wrote: > > Hi all, > > > > After merging the memblock tree, today's linux-next build > > (powerpc_pseries_le_defconfig) failed my qemu boot test like this: > > > > mem auto-init: stack:all(zero), heap alloc:off, heap free:off > > BUG: Unable to handle kernel data access on read at 0x00001878 > > Faulting instruction address: 0xc0000000004f00e4 > > Oops: Kernel access of bad area, sig: 7 [#1] > > LE PAGE_SIZE=4K MMU=Radix SMP NR_CPUS=2048 NUMA pSeries > > Modules linked in: > > CPU: 0 UID: 0 PID: 0 Comm: swapper Not tainted 6.12.0-rc4-06078-g367eaba2691a #1 > > Hardware name: IBM pSeries (emulated by qemu) POWER10 (architected) 0x801200 0xf000006 of:SLOF,HEAD pSeries > > NIP: c0000000004f00e4 LR: c000000000489df8 CTR: 0000000000000000 > > REGS: c0000000028cfae0 TRAP: 0300 Not tainted (6.12.0-rc4-06078-g367eaba2691a) > > MSR: 8000000002001033 <SF,VEC,ME,IR,DR,RI,LE> CR: 84000240 XER: 00000000 > > CFAR: c0000000004f2c48 DAR: 0000000000001878 DSISR: 00080000 IRQMASK: 3 > > GPR00: c00000000204994c c0000000028cfd80 c0000000016a4300 c00c000000040000 > > GPR04: 0000000000000001 0000000000001000 0000000000000007 c000000002a11178 > > GPR08: 0000000000000000 0000000000001800 c00000007fffe720 0000000000002001 > > GPR12: 0000000000000000 c000000002a6a000 0000000000000000 00000000018855c0 > > GPR16: c000000002940270 c00c000000000000 0000000000040000 0000000000000000 > > GPR20: 0000000000000000 ffffffffffffffff 0000000000000001 ffffffffffffffff > > GPR24: 00c0000000000000 0000000000000000 0000000000000000 0000000008000000 > > GPR28: 0000000000000000 0000000000002a6b 0000000000000000 0000000000001000 > > NIP [c0000000004f00e4] set_pfnblock_flags_mask+0x74/0x140 > > LR [c000000000489df8] reserve_bootmem_region+0x2a8/0x2c0 > > Call Trace: > > c0000000028cfd80] [c0000000028cfdd0] 0xc0000000028cfdd0 (unreliable) > > c0000000028cfe20] [c00000000204994c] memblock_free_all+0x144/0x2d0 > > c0000000028cfea0] [c000000002016354] mem_init+0x5c/0x70 > > c0000000028cfec0] [c00000000204547c] mm_core_init+0x158/0x1dc > > c0000000028cff30] [c000000002004350] start_kernel+0x608/0x944 > > c0000000028cffe0] [c00000000000e99c] start_here_common+0x1c/0x20 > > Code: 4182000c 79082d28 7d4a4214 e9230000 3d020137 38e8ce78 79284620 792957a0 79081f24 79295d24 7d07402a 7d284a14 <e9090078> 7c254040 41800094 e9290088 > > ---[ end trace 0000000000000000 ]--- > > > > Kernel panic - not syncing: Attempted to kill the idle task! > > > > Caused by commit > > > > ad48825232a9 ("memblock: uniformly initialize all reserved pages to MIGRATE_MOVABLE") > > > > I bisected the failure to this commit and have reverted it for today. > > Apparently set_pfnblock_flags_mask() is unhappy when called for > uninitialized struct page. With the patch below > > qemu-system-ppc64el -M pseries -cpu power10 -smp 16 -m 32G -vga none -nographic -kernel $KERNEL > > boots up to mounting root filesystem. > > diff --git a/mm/mm_init.c b/mm/mm_init.c > index 49dbd30e71ad..2395970314e7 100644 > --- a/mm/mm_init.c > +++ b/mm/mm_init.c > @@ -723,10 +723,10 @@ static void __meminit init_reserved_page(unsigned long pfn, int nid) > break; > } > > + __init_single_page(pfn_to_page(pfn), pfn, zid, nid); > + > if (pageblock_aligned(pfn)) > set_pageblock_migratetype(pfn_to_page(pfn), MIGRATE_MOVABLE); > - > - __init_single_page(pfn_to_page(pfn), pfn, zid, nid); Indeed, when #ifdef NODE_NOT_IN_PAGE_FLAGS is defined, there is no problem, and this is why my test environment did not reveal any issues. However, when NODE_NOT_IN_PAGE_FLAGS is not defined, page_to_nid needs to use page->flags to get the node ID, which depends on __init_single_page for initialization. > } > #else > static inline void pgdat_set_deferred_range(pg_data_t *pgdat) {} > > > -- > > Cheers, > > Stephen Rothwell > > > > -- > Sincerely yours, > Mike. Sincerely yours, Su ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: linux-next: boot failure after merge of the memblock tree 2024-10-25 8:19 ` Su Hua @ 2024-10-25 8:33 ` Su Hua 2024-10-25 8:42 ` Mike Rapoport 0 siblings, 1 reply; 11+ messages in thread From: Su Hua @ 2024-10-25 8:33 UTC (permalink / raw) To: Mike Rapoport Cc: Stephen Rothwell, Linux Kernel Mailing List, Linux Next Mailing List Su Hua <suhua.tanke@gmail.com> 于2024年10月25日周五 16:19写道: > > Appreciate everyone. > > Mike Rapoport <rppt@kernel.org> 于2024年10月25日周五 14:57写道: > > > > Hi Stephen, > > > > On Tue, Oct 22, 2024 at 05:39:21PM +1100, Stephen Rothwell wrote: > > > Hi all, > > > > > > After merging the memblock tree, today's linux-next build > > > (powerpc_pseries_le_defconfig) failed my qemu boot test like this: > > > > > > mem auto-init: stack:all(zero), heap alloc:off, heap free:off > > > BUG: Unable to handle kernel data access on read at 0x00001878 > > > Faulting instruction address: 0xc0000000004f00e4 > > > Oops: Kernel access of bad area, sig: 7 [#1] > > > LE PAGE_SIZE=4K MMU=Radix SMP NR_CPUS=2048 NUMA pSeries > > > Modules linked in: > > > CPU: 0 UID: 0 PID: 0 Comm: swapper Not tainted 6.12.0-rc4-06078-g367eaba2691a #1 > > > Hardware name: IBM pSeries (emulated by qemu) POWER10 (architected) 0x801200 0xf000006 of:SLOF,HEAD pSeries > > > NIP: c0000000004f00e4 LR: c000000000489df8 CTR: 0000000000000000 > > > REGS: c0000000028cfae0 TRAP: 0300 Not tainted (6.12.0-rc4-06078-g367eaba2691a) > > > MSR: 8000000002001033 <SF,VEC,ME,IR,DR,RI,LE> CR: 84000240 XER: 00000000 > > > CFAR: c0000000004f2c48 DAR: 0000000000001878 DSISR: 00080000 IRQMASK: 3 > > > GPR00: c00000000204994c c0000000028cfd80 c0000000016a4300 c00c000000040000 > > > GPR04: 0000000000000001 0000000000001000 0000000000000007 c000000002a11178 > > > GPR08: 0000000000000000 0000000000001800 c00000007fffe720 0000000000002001 > > > GPR12: 0000000000000000 c000000002a6a000 0000000000000000 00000000018855c0 > > > GPR16: c000000002940270 c00c000000000000 0000000000040000 0000000000000000 > > > GPR20: 0000000000000000 ffffffffffffffff 0000000000000001 ffffffffffffffff > > > GPR24: 00c0000000000000 0000000000000000 0000000000000000 0000000008000000 > > > GPR28: 0000000000000000 0000000000002a6b 0000000000000000 0000000000001000 > > > NIP [c0000000004f00e4] set_pfnblock_flags_mask+0x74/0x140 > > > LR [c000000000489df8] reserve_bootmem_region+0x2a8/0x2c0 > > > Call Trace: > > > c0000000028cfd80] [c0000000028cfdd0] 0xc0000000028cfdd0 (unreliable) > > > c0000000028cfe20] [c00000000204994c] memblock_free_all+0x144/0x2d0 > > > c0000000028cfea0] [c000000002016354] mem_init+0x5c/0x70 > > > c0000000028cfec0] [c00000000204547c] mm_core_init+0x158/0x1dc > > > c0000000028cff30] [c000000002004350] start_kernel+0x608/0x944 > > > c0000000028cffe0] [c00000000000e99c] start_here_common+0x1c/0x20 > > > Code: 4182000c 79082d28 7d4a4214 e9230000 3d020137 38e8ce78 79284620 792957a0 79081f24 79295d24 7d07402a 7d284a14 <e9090078> 7c254040 41800094 e9290088 > > > ---[ end trace 0000000000000000 ]--- > > > > > > Kernel panic - not syncing: Attempted to kill the idle task! > > > > > > Caused by commit > > > > > > ad48825232a9 ("memblock: uniformly initialize all reserved pages to MIGRATE_MOVABLE") > > > > > > I bisected the failure to this commit and have reverted it for today. > > > > Apparently set_pfnblock_flags_mask() is unhappy when called for > > uninitialized struct page. With the patch below > > > > qemu-system-ppc64el -M pseries -cpu power10 -smp 16 -m 32G -vga none -nographic -kernel $KERNEL > > > > boots up to mounting root filesystem. > > > > diff --git a/mm/mm_init.c b/mm/mm_init.c > > index 49dbd30e71ad..2395970314e7 100644 > > --- a/mm/mm_init.c > > +++ b/mm/mm_init.c > > @@ -723,10 +723,10 @@ static void __meminit init_reserved_page(unsigned long pfn, int nid) > > break; > > } > > > > + __init_single_page(pfn_to_page(pfn), pfn, zid, nid); > > + > > if (pageblock_aligned(pfn)) > > set_pageblock_migratetype(pfn_to_page(pfn), MIGRATE_MOVABLE); > > - > > - __init_single_page(pfn_to_page(pfn), pfn, zid, nid); > > Indeed, when #ifdef NODE_NOT_IN_PAGE_FLAGS is defined, there is no > problem, and this is why my > test environment did not reveal any issues. However, when > NODE_NOT_IN_PAGE_FLAGS is not defined, > page_to_nid needs to use page->flags to get the node ID, which depends > on __init_single_page for initialization. > > > } > > #else > > static inline void pgdat_set_deferred_range(pg_data_t *pgdat) {} > > > > > -- > > > Cheers, > > > Stephen Rothwell > > > > > > > > -- > > Sincerely yours, > > Mike. > > Sincerely yours, > Su Hi Mike Could you please advise whether the fix for this issue should be submitted by you or me as a new patch, or should I submit a patch that adjusts the code position, just like this: diff --git a/mm/mm_init.c b/mm/mm_init.c index 4ba5607aaf19..5a8114fb02ae 100644 --- a/mm/mm_init.c +++ b/mm/mm_init.c @@ -723,6 +723,9 @@ static void __meminit init_reserved_page(unsigned long pfn, int nid) break; } __init_single_page(pfn_to_page(pfn), pfn, zid, nid); + + if (pageblock_aligned(pfn)) + set_pageblock_migratetype(pfn_to_page(pfn), MIGRATE_MOVABLE); } #else Sincerely yours, Su ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: linux-next: boot failure after merge of the memblock tree 2024-10-25 8:33 ` Su Hua @ 2024-10-25 8:42 ` Mike Rapoport 2024-10-25 23:36 ` Su Hua 0 siblings, 1 reply; 11+ messages in thread From: Mike Rapoport @ 2024-10-25 8:42 UTC (permalink / raw) To: Su Hua; +Cc: Stephen Rothwell, Linux Kernel Mailing List, Linux Next Mailing List On Fri, Oct 25, 2024 at 04:33:16PM +0800, Su Hua wrote: > Su Hua <suhua.tanke@gmail.com> 于2024年10月25日周五 16:19写道: > > > > Appreciate everyone. > > > > Mike Rapoport <rppt@kernel.org> 于2024年10月25日周五 14:57写道: > > > > > > Hi Stephen, > > > > > > On Tue, Oct 22, 2024 at 05:39:21PM +1100, Stephen Rothwell wrote: > > > > Hi all, > > > > > > > > After merging the memblock tree, today's linux-next build > > > > (powerpc_pseries_le_defconfig) failed my qemu boot test like this: > > > > > > > > Kernel panic - not syncing: Attempted to kill the idle task! > > > > > > > > Caused by commit > > > > > > > > ad48825232a9 ("memblock: uniformly initialize all reserved pages to MIGRATE_MOVABLE") > > > > > > > > I bisected the failure to this commit and have reverted it for today. > > > > > > Apparently set_pfnblock_flags_mask() is unhappy when called for > > > uninitialized struct page. With the patch below > > > > > > qemu-system-ppc64el -M pseries -cpu power10 -smp 16 -m 32G -vga none -nographic -kernel $KERNEL > > > > > > boots up to mounting root filesystem. > > > > > > diff --git a/mm/mm_init.c b/mm/mm_init.c > > > index 49dbd30e71ad..2395970314e7 100644 > > > --- a/mm/mm_init.c > > > +++ b/mm/mm_init.c > > > @@ -723,10 +723,10 @@ static void __meminit init_reserved_page(unsigned long pfn, int nid) > > > break; > > > } > > > > > > + __init_single_page(pfn_to_page(pfn), pfn, zid, nid); > > > + > > > if (pageblock_aligned(pfn)) > > > set_pageblock_migratetype(pfn_to_page(pfn), MIGRATE_MOVABLE); > > > - > > > - __init_single_page(pfn_to_page(pfn), pfn, zid, nid); > > > > Indeed, when #ifdef NODE_NOT_IN_PAGE_FLAGS is defined, there is no > > problem, and this is why my > > test environment did not reveal any issues. However, when > > NODE_NOT_IN_PAGE_FLAGS is not defined, > > page_to_nid needs to use page->flags to get the node ID, which depends > > on __init_single_page for initialization. > > Hi Mike > Could you please advise whether the fix for this issue should be > submitted by you or me > as a new patch, or should I submit a patch that adjusts the code > position, just like this: I've folded the update into your original commit, it's now in for-next branch of memblock tree > diff --git a/mm/mm_init.c b/mm/mm_init.c > index 4ba5607aaf19..5a8114fb02ae 100644 > --- a/mm/mm_init.c > +++ b/mm/mm_init.c > @@ -723,6 +723,9 @@ static void __meminit init_reserved_page(unsigned > long pfn, int nid) > break; > } > __init_single_page(pfn_to_page(pfn), pfn, zid, nid); > + > + if (pageblock_aligned(pfn)) > + set_pageblock_migratetype(pfn_to_page(pfn), MIGRATE_MOVABLE); > } > #else > > Sincerely yours, > Su -- Sincerely yours, Mike. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: linux-next: boot failure after merge of the memblock tree 2024-10-25 8:42 ` Mike Rapoport @ 2024-10-25 23:36 ` Su Hua 2024-10-28 20:20 ` Stephen Rothwell 0 siblings, 1 reply; 11+ messages in thread From: Su Hua @ 2024-10-25 23:36 UTC (permalink / raw) To: Mike Rapoport Cc: Stephen Rothwell, Linux Kernel Mailing List, Linux Next Mailing List Mike Rapoport <rppt@kernel.org> 于2024年10月25日周五 16:46写道: > > On Fri, Oct 25, 2024 at 04:33:16PM +0800, Su Hua wrote: > > Su Hua <suhua.tanke@gmail.com> 于2024年10月25日周五 16:19写道: > > > > > > Appreciate everyone. > > > > > > Mike Rapoport <rppt@kernel.org> 于2024年10月25日周五 14:57写道: > > > > > > > > Hi Stephen, > > > > > > > > On Tue, Oct 22, 2024 at 05:39:21PM +1100, Stephen Rothwell wrote: > > > > > Hi all, > > > > > > > > > > After merging the memblock tree, today's linux-next build > > > > > (powerpc_pseries_le_defconfig) failed my qemu boot test like this: > > > > > > > > > > Kernel panic - not syncing: Attempted to kill the idle task! > > > > > > > > > > Caused by commit > > > > > > > > > > ad48825232a9 ("memblock: uniformly initialize all reserved pages to MIGRATE_MOVABLE") > > > > > > > > > > I bisected the failure to this commit and have reverted it for today. > > > > > > > > Apparently set_pfnblock_flags_mask() is unhappy when called for > > > > uninitialized struct page. With the patch below > > > > > > > > qemu-system-ppc64el -M pseries -cpu power10 -smp 16 -m 32G -vga none -nographic -kernel $KERNEL > > > > > > > > boots up to mounting root filesystem. > > > > > > > > diff --git a/mm/mm_init.c b/mm/mm_init.c > > > > index 49dbd30e71ad..2395970314e7 100644 > > > > --- a/mm/mm_init.c > > > > +++ b/mm/mm_init.c > > > > @@ -723,10 +723,10 @@ static void __meminit init_reserved_page(unsigned long pfn, int nid) > > > > break; > > > > } > > > > > > > > + __init_single_page(pfn_to_page(pfn), pfn, zid, nid); > > > > + > > > > if (pageblock_aligned(pfn)) > > > > set_pageblock_migratetype(pfn_to_page(pfn), MIGRATE_MOVABLE); > > > > - > > > > - __init_single_page(pfn_to_page(pfn), pfn, zid, nid); > > > > > > Indeed, when #ifdef NODE_NOT_IN_PAGE_FLAGS is defined, there is no > > > problem, and this is why my > > > test environment did not reveal any issues. However, when > > > NODE_NOT_IN_PAGE_FLAGS is not defined, > > > page_to_nid needs to use page->flags to get the node ID, which depends > > > on __init_single_page for initialization. > > > > Hi Mike > > Could you please advise whether the fix for this issue should be > > submitted by you or me > > as a new patch, or should I submit a patch that adjusts the code > > position, just like this: > > I've folded the update into your original commit, it's now in for-next > branch of memblock tree Okay, thank you. > > diff --git a/mm/mm_init.c b/mm/mm_init.c > > index 4ba5607aaf19..5a8114fb02ae 100644 > > --- a/mm/mm_init.c > > +++ b/mm/mm_init.c > > @@ -723,6 +723,9 @@ static void __meminit init_reserved_page(unsigned > > long pfn, int nid) > > break; > > } > > __init_single_page(pfn_to_page(pfn), pfn, zid, nid); > > + > > + if (pageblock_aligned(pfn)) > > + set_pageblock_migratetype(pfn_to_page(pfn), MIGRATE_MOVABLE); > > } > > #else > > > > Sincerely yours, > > Su > > -- > Sincerely yours, > Mike. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: linux-next: boot failure after merge of the memblock tree 2024-10-25 23:36 ` Su Hua @ 2024-10-28 20:20 ` Stephen Rothwell 2024-10-29 7:15 ` Mike Rapoport 0 siblings, 1 reply; 11+ messages in thread From: Stephen Rothwell @ 2024-10-28 20:20 UTC (permalink / raw) To: Mike Rapoport; +Cc: Su Hua, Linux Kernel Mailing List, Linux Next Mailing List [-- Attachment #1: Type: text/plain, Size: 3457 bytes --] Hi all, On Sat, 26 Oct 2024 07:36:13 +0800 Su Hua <suhua.tanke@gmail.com> wrote: > > Mike Rapoport <rppt@kernel.org> 于2024年10月25日周五 16:46写道: > > > > On Fri, Oct 25, 2024 at 04:33:16PM +0800, Su Hua wrote: > > > Su Hua <suhua.tanke@gmail.com> 于2024年10月25日周五 16:19写道: > > > > > > > > Appreciate everyone. > > > > > > > > Mike Rapoport <rppt@kernel.org> 于2024年10月25日周五 14:57写道: > > > > > > > > > > Hi Stephen, > > > > > > > > > > On Tue, Oct 22, 2024 at 05:39:21PM +1100, Stephen Rothwell wrote: > > > > > > Hi all, > > > > > > > > > > > > After merging the memblock tree, today's linux-next build > > > > > > (powerpc_pseries_le_defconfig) failed my qemu boot test like this: > > > > > > > > > > > > Kernel panic - not syncing: Attempted to kill the idle task! > > > > > > > > > > > > Caused by commit > > > > > > > > > > > > ad48825232a9 ("memblock: uniformly initialize all reserved pages to MIGRATE_MOVABLE") > > > > > > > > > > > > I bisected the failure to this commit and have reverted it for today. > > > > > > > > > > Apparently set_pfnblock_flags_mask() is unhappy when called for > > > > > uninitialized struct page. With the patch below > > > > > > > > > > qemu-system-ppc64el -M pseries -cpu power10 -smp 16 -m 32G -vga none -nographic -kernel $KERNEL > > > > > > > > > > boots up to mounting root filesystem. > > > > > > > > > > diff --git a/mm/mm_init.c b/mm/mm_init.c > > > > > index 49dbd30e71ad..2395970314e7 100644 > > > > > --- a/mm/mm_init.c > > > > > +++ b/mm/mm_init.c > > > > > @@ -723,10 +723,10 @@ static void __meminit init_reserved_page(unsigned long pfn, int nid) > > > > > break; > > > > > } > > > > > > > > > > + __init_single_page(pfn_to_page(pfn), pfn, zid, nid); > > > > > + > > > > > if (pageblock_aligned(pfn)) > > > > > set_pageblock_migratetype(pfn_to_page(pfn), MIGRATE_MOVABLE); > > > > > - > > > > > - __init_single_page(pfn_to_page(pfn), pfn, zid, nid); > > > > > > > > Indeed, when #ifdef NODE_NOT_IN_PAGE_FLAGS is defined, there is no > > > > problem, and this is why my > > > > test environment did not reveal any issues. However, when > > > > NODE_NOT_IN_PAGE_FLAGS is not defined, > > > > page_to_nid needs to use page->flags to get the node ID, which depends > > > > on __init_single_page for initialization. > > > > > > Hi Mike > > > Could you please advise whether the fix for this issue should be > > > submitted by you or me > > > as a new patch, or should I submit a patch that adjusts the code > > > position, just like this: > > > > I've folded the update into your original commit, it's now in for-next > > branch of memblock tree > > Okay, thank you. > > > > diff --git a/mm/mm_init.c b/mm/mm_init.c > > > index 4ba5607aaf19..5a8114fb02ae 100644 > > > --- a/mm/mm_init.c > > > +++ b/mm/mm_init.c > > > @@ -723,6 +723,9 @@ static void __meminit init_reserved_page(unsigned > > > long pfn, int nid) > > > break; > > > } > > > __init_single_page(pfn_to_page(pfn), pfn, zid, nid); > > > + > > > + if (pageblock_aligned(pfn)) > > > + set_pageblock_migratetype(pfn_to_page(pfn), MIGRATE_MOVABLE); > > > } > > > #else This has returned, so I applied by hand the above discussed fix. -- Cheers, Stephen Rothwell [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: linux-next: boot failure after merge of the memblock tree 2024-10-28 20:20 ` Stephen Rothwell @ 2024-10-29 7:15 ` Mike Rapoport 0 siblings, 0 replies; 11+ messages in thread From: Mike Rapoport @ 2024-10-29 7:15 UTC (permalink / raw) To: Stephen Rothwell Cc: Su Hua, Linux Kernel Mailing List, Linux Next Mailing List On Tue, Oct 29, 2024 at 07:20:39AM +1100, Stephen Rothwell wrote: > Hi all, > > On Sat, 26 Oct 2024 07:36:13 +0800 Su Hua <suhua.tanke@gmail.com> wrote: > > > > > > diff --git a/mm/mm_init.c b/mm/mm_init.c > > > > index 4ba5607aaf19..5a8114fb02ae 100644 > > > > --- a/mm/mm_init.c > > > > +++ b/mm/mm_init.c > > > > @@ -723,6 +723,9 @@ static void __meminit init_reserved_page(unsigned > > > > long pfn, int nid) > > > > break; > > > > } > > > > __init_single_page(pfn_to_page(pfn), pfn, zid, nid); > > > > + > > > > + if (pageblock_aligned(pfn)) > > > > + set_pageblock_migratetype(pfn_to_page(pfn), MIGRATE_MOVABLE); > > > > } > > > > #else > > This has returned, so I applied by hand the above discussed fix. Sorry, I forgot to push :/ > -- > Cheers, > Stephen Rothwell -- Sincerely yours, Mike. ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2024-10-29 7:19 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-10-22 6:39 linux-next: boot failure after merge of the memblock tree Stephen Rothwell 2024-10-23 3:20 ` Su Hua 2024-10-23 22:23 ` Stephen Rothwell 2024-10-24 3:18 ` Su Hua 2024-10-25 6:53 ` Mike Rapoport 2024-10-25 8:19 ` Su Hua 2024-10-25 8:33 ` Su Hua 2024-10-25 8:42 ` Mike Rapoport 2024-10-25 23:36 ` Su Hua 2024-10-28 20:20 ` Stephen Rothwell 2024-10-29 7:15 ` Mike Rapoport
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).