[5.6.0-rc2-next-20200218/powerpc] Boot failure on POWER9
Vlastimil Babka
vbabka at suse.cz
Fri Mar 13 22:35:33 AEDT 2020
On 3/13/20 12:12 PM, Srikar Dronamraju wrote:
> * Michael Ellerman <mpe at ellerman.id.au> [2020-03-13 21:48:06]:
>
>> Sachin Sant <sachinp at linux.vnet.ibm.com> writes:
>> >> The patch below might work. Sachin can you test this? I tried faking up
>> >> a system with a memoryless node zero but couldn't get it to even start
>> >> booting.
>> >>
>> > The patch did not help. The kernel crashed during
>> > the boot with the same call trace.
>> >
>> > BUG_ON() introduced with the patch was not triggered.
>>
>> OK, that's weird.
>>
>> I eventually managed to get a memoryless node going in sim, and it
>> appears to work there.
>>
>> eg in dmesg:
>>
>> [ 0.000000][ T0] numa: NODE_DATA [mem 0x2000fffa2f80-0x2000fffa7fff]
>> [ 0.000000][ T0] numa: NODE_DATA(0) on node 1
>> [ 0.000000][ T0] numa: NODE_DATA [mem 0x2000fff9df00-0x2000fffa2f7f]
>> ...
>> [ 0.000000][ T0] Early memory node ranges
>> [ 0.000000][ T0] node 1: [mem 0x0000000000000000-0x00000000ffffffff]
>> [ 0.000000][ T0] node 1: [mem 0x0000200000000000-0x00002000ffffffff]
>> [ 0.000000][ T0] Could not find start_pfn for node 0
>> [ 0.000000][ T0] Initmem setup node 0 [mem 0x0000000000000000-0x0000000000000000]
>> [ 0.000000][ T0] On node 0 totalpages: 0
>> [ 0.000000][ T0] Initmem setup node 1 [mem 0x0000000000000000-0x00002000ffffffff]
>> [ 0.000000][ T0] On node 1 totalpages: 131072
>>
>> # dmesg | grep set_numa
>> [ 0.000000][ T0] set_numa_mem: mem node for 0 = 1
>> [ 0.005654][ T0] set_numa_mem: mem node for 1 = 1
>>
>> So is the problem more than just node zero having no memory?
>>
>
> The problem would happen with possible nodes which are not yet present. i.e
> no cpus, no memory attached to those nodes.
>
> Please look at
> http://lore.kernel.org/lkml/20200312131438.GB3277@linux.vnet.ibm.com/t/#u
> for more details.
>
> The summary being: pgdat/Node_Data for such nodes is not allocated. Hence
Michael's log shows that his pgdat is still allocated. But perhaps Sachin had
also your 3 patches from the other thread applied, in addition to Michael's
patch. So in his case pgdat for node 0 would indeed be no longer allocated, and
thus SLUB code was crashing in node_present_pages() instead.
> the node_present_pages(nid) called where nid is a possible but not yet
> present node fails. Currently node_present_pages(nid) and node_to_mem_node
> don't seem to be equipped to handle possible but not present nodes.
>
>> cheers
>
More information about the Linuxppc-dev
mailing list