# 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_mpc85xx_smp_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- mpc85xx_smp_defconfig # < make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-fixes_mpc85xx_smp_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_mpc85xx_smp_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_mpc85xx_smp_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- In file included from /kisskb/src/include/linux/kernel.h:11:0, from /kisskb/src/include/linux/list.h:9, from /kisskb/src/include/linux/module.h:12, from /kisskb/src/drivers/net/ethernet/freescale/fs_enet/mac-scc.c:15: /kisskb/src/drivers/net/ethernet/freescale/fs_enet/mac-scc.c: In function 'allocate_bd': /kisskb/src/include/linux/err.h:22:49: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define IS_ERR_VALUE(x) unlikely((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO) ^ /kisskb/src/include/linux/compiler.h:78:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ /kisskb/src/drivers/net/ethernet/freescale/fs_enet/mac-scc.c:139:6: note: in expansion of macro 'IS_ERR_VALUE' if (IS_ERR_VALUE(fep->ring_mem_addr)) ^ cc1: fatal error: opening output file arch/powerpc/boot/dts/fsl/.mpc8540ads.dtb.dts.tmp: No such file or directory compilation terminated. make[2]: *** [scripts/Makefile.lib:326: arch/powerpc/boot/dts/fsl/mpc8540ads.dtb] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [arch/powerpc/Makefile:294: zImage] Error 2 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:185: __sub-make] Error 2 Command 'make -s -j 48 ARCH=powerpc O=/kisskb/build/powerpc-fixes_mpc85xx_smp_defconfig_powerpc-gcc4.9 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-4.9.4-nolibc/powerpc64-linux/bin/powerpc64-linux- ' returned non-zero exit status 2 # rm -rf /kisskb/build/powerpc-fixes_mpc85xx_smp_defconfig_powerpc-gcc4.9 # Build took: 0:02:04.045865