# git rev-parse -q --verify 10f78fd0dabbc3856ddd67b09a46abdedb045913^{commit} 10f78fd0dabbc3856ddd67b09a46abdedb045913 already have revision, skipping fetch # git checkout -q -f -B kisskb 10f78fd0dabbc3856ddd67b09a46abdedb045913 # git clean -qxdf # < git log -1 # commit 10f78fd0dabbc3856ddd67b09a46abdedb045913 # Author: Srikar Dronamraju # Date: Fri Nov 27 11:07:38 2020 +0530 # # 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 # Signed-off-by: Srikar Dronamraju # Signed-off-by: Michael Ellerman # Link: https://lore.kernel.org/r/20201127053738.10085-1-srikar@linux.vnet.ibm.com # < /opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 10f78fd0dabbc3856ddd67b09a46abdedb045913 # < make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-fixes_ps3_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- ps3_defconfig # < make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-fixes_ps3_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-fixes_ps3_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig # make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-fixes_ps3_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- Completed OK # rm -rf /kisskb/build/powerpc-fixes_ps3_defconfig_powerpc-gcc4.9 # Build took: 0:01:31.166727