* 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).