powerpc/numa: Fix a regression on memoryless node 0
Commit
e75130f20b1f ("powerpc/numa: Offline memoryless cpuless node 0")
offlines node 0 and expects nodes to be subsequently onlined when CPUs
or nodes are detected.
Commit
6398eaa26816 ("powerpc/numa: Prefer node id queried from vphn")
skips onlining node 0 when CPUs are associated with node 0.
On systems with node 0 having CPUs but no memory, this causes node 0 be
marked offline. This causes issues at boot time when trying to set
memory node for online CPUs while building the zonelist.
0:mon> t
[link register ]
c000000000400354 __build_all_zonelists+0x164/0x280
[
c00000000161bda0]
c0000000016533c8 node_states+0x20/0xa0 (unreliable)
[
c00000000161bdc0]
c000000000400384 __build_all_zonelists+0x194/0x280
[
c00000000161be30]
c000000001041800 build_all_zonelists_init+0x4c/0x118
[
c00000000161be80]
c0000000004020d0 build_all_zonelists+0x190/0x1b0
[
c00000000161bef0]
c000000001003cf8 start_kernel+0x18c/0x6a8
[
c00000000161bf90]
c00000000000adb4 start_here_common+0x1c/0x3e8
0:mon> r
R00 =
c000000000400354 R16 =
000000000b57a0e8
R01 =
c00000000161bda0 R17 =
000000000b57a6b0
R02 =
c00000000161ce00 R18 =
000000000b5afee8
R03 =
0000000000000000 R19 =
000000000b6448a0
R04 =
0000000000000000 R20 =
fffffffffffffffd
R05 =
0000000000000000 R21 =
0000000001400000
R06 =
0000000000000000 R22 =
000000001ec00000
R07 =
0000000000000001 R23 =
c000000001175580
R08 =
0000000000000000 R24 =
c000000001651ed8
R09 =
c0000000017e84d8 R25 =
c000000001652480
R10 =
0000000000000000 R26 =
c000000001175584
R11 =
c000000c7fac0d10 R27 =
c0000000019568d0
R12 =
c000000000400180 R28 =
0000000000000000
R13 =
c000000002200000 R29 =
c00000000164dd78
R14 =
000000000b579f78 R30 =
0000000000000000
R15 =
000000000b57a2b8 R31 =
c000000001175584
pc =
c000000000400194 local_memory_node+0x24/0x80
cfar=
c000000000074334 mcount+0xc/0x10
lr =
c000000000400354 __build_all_zonelists+0x164/0x280
msr =
8000000002001033 cr =
44002284
ctr =
c000000000400180 xer =
0000000000000001 trap = 380
dar =
0000000000001388 dsisr =
c00000000161bc90
0:mon>
Fix this by setting node to be online while onlining CPUs that belong to
node 0.
Fixes: e75130f20b1f ("powerpc/numa: Offline memoryless cpuless node 0")
Fixes: 6398eaa26816 ("powerpc/numa: Prefer node id queried from vphn")
Reported-by: Milan Mohanty <milmohan@in.ibm.com>
Signed-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20201127053738.10085-1-srikar@linux.vnet.ibm.com