From: Christian Zigotzky <hidden> Date: 2018-10-29 09:58:33
Hello,
I have figured out that the commit 'devicetree-for-4.20' [1] is
responsible for the SMP problem. I was able to revert this commit with
'git revert b27186abb37b7bd19e0ca434f4f425c807dbd708 -m 1' today.
[master ec81438] Revert "Merge tag 'devicetree-for-4.20' of
git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux"
138 files changed, 931 insertions(+), 1538 deletions(-)
rename Documentation/devicetree/bindings/arm/{atmel-sysregs.txt =>
atmel-at91.txt} (67%)
delete mode 100644
Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-dcfg.txt
delete mode 100644
Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-scfg.txt
rename Documentation/devicetree/bindings/arm/{zte,sysctrl.txt =>
zte.txt} (62%)
delete mode 100644 Documentation/devicetree/bindings/misc/lwn-bk4.txt
create mode 100644 arch/c6x/boot/dts/linked_dtb.S
delete mode 100644 arch/nios2/boot/dts/Makefile
create mode 100644 arch/nios2/boot/linked_dtb.S
delete mode 100644 arch/powerpc/boot/dts/Makefile
delete mode 100644 arch/powerpc/boot/dts/fsl/Makefile
delete mode 100644 scripts/dtc/yamltree.c
It solves the SMP problem! SMP works again on my P5020 board and on
virtual e5500 QEMU machines.
QEMU command: ./qemu-system-ppc64 -M ppce500 -cpu e5500 -m 2048 -kernel
/home/christian/Downloads/uImage-4.20-alpha5 -drive
format=raw,file=/home/christian/Dokumente/ubuntu_MATE_16.04.3_LTS_PowerPC_QEMU/ubuntu_MATE_16.04_PowerPC.img,index=0,if=virtio
-nic user,model=e1000 -append "rw root=/dev/vda3" -device virtio-vga
-device virtio-mouse-pci -device virtio-keyboard-pci -soundhw es1370 -smp 4
Screenshot:
https://plus.google.com/u/0/photos/photo/115515624056477014971/6617705776207990082
Do we need a new dtb file or is it a bug?
Thanks,
Christian
[1]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b27186abb37b7bd19e0ca434f4f425c807dbd708
On 28 October 2018 at 5:35PM, Christian Zigotzky wrote:
Hello,
SMP doesn't work anymore with the latest Git kernel (28/10/18 11:12AM
GMT) on my P5020 board and on virtual e5500 QEMU machines.
Board with P5020 dual core CPU:
[ 0.000000] -----------------------------------------------------
[ 0.000000] phys_mem_size = 0x200000000
[ 0.000000] dcache_bsize = 0x40
[ 0.000000] icache_bsize = 0x40
[ 0.000000] cpu_features = 0x00000003008003b4
[ 0.000000] possible = 0x00000003009003b4
[ 0.000000] always = 0x00000003008003b4
[ 0.000000] cpu_user_features = 0xcc008000 0x08000000
[ 0.000000] mmu_features = 0x000a0010
[ 0.000000] firmware_features = 0x0000000000000000
[ 0.000000] -----------------------------------------------------
[ 0.000000] CoreNet Generic board
...
[ 0.002161] smp: Bringing up secondary CPUs ...
[ 0.002339] No cpu-release-addr for cpu 1
[ 0.002347] smp: failed starting cpu 1 (rc -2)
[ 0.002401] smp: Brought up 1 node, 1 CPU
Virtual e5500 quad core QEMU machine:
[ 0.026394] smp: Bringing up secondary CPUs ...
[ 0.027831] No cpu-release-addr for cpu 1
[ 0.027989] smp: failed starting cpu 1 (rc -2)
[ 0.030143] No cpu-release-addr for cpu 2
[ 0.030304] smp: failed starting cpu 2 (rc -2)
[ 0.032400] No cpu-release-addr for cpu 3
[ 0.032533] smp: failed starting cpu 3 (rc -2)
[ 0.033117] smp: Brought up 1 node, 1 CPU
QEMU command: ./qemu-system-ppc64 -M ppce500 -cpu e5500 -m 2048
-kernel
/home/christian/Downloads/vmlinux-4.20-alpha4-AmigaOne_X1000_X5000/X5000_and_QEMU_e5500/uImage-4.20
-drive
format=raw,file=/home/christian/Downloads/MATE_PowerPC_Remix_2017_0.9.img,index=0,if=virtio
-nic user,model=e1000 -append "rw root=/dev/vda" -device virtio-vga
-device virtio-mouse-pci -device virtio-keyboard-pci -usb -soundhw
es1370 -smp 4
.config:
...
CONFIG_SMP=y
CONFIG_NR_CPUS=4
...
Please test the latest Git kernel on your NXP P50XX boards.
Thanks,
Christian
From: Christian Zigotzky <hidden> Date: 2018-10-29 10:25:11
Hello,
The latest Git kernel doesn't compile currently because of the following
error:
CC arch/powerpc/kvm/powerpc.o
In file included from arch/powerpc/kvm/powerpc.c:51:0:
arch/powerpc/kvm/trace.h:9:0: error: "TRACE_INCLUDE_PATH" redefined
[-Werror]
#define TRACE_INCLUDE_PATH .
^
In file included from arch/powerpc/kvm/../mm/mmu_decl.h:25:0,
from arch/powerpc/kvm/powerpc.c:48:
./arch/powerpc/include/asm/trace.h:224:0: note: this is the location of
the previous definition
#define TRACE_INCLUDE_PATH asm
^
cc1: all warnings being treated as errors
scripts/Makefile.build:305: die Regel für Ziel
„arch/powerpc/kvm/powerpc.o“ scheiterte
make[2]: *** [arch/powerpc/kvm/powerpc.o] Fehler 1
scripts/Makefile.build:546: die Regel für Ziel „arch/powerpc/kvm“ scheiterte
make[1]: *** [arch/powerpc/kvm] Fehler 2
Makefile:1052: die Regel für Ziel „arch/powerpc“ scheiterte
make: *** [arch/powerpc] Fehler 2
christian@christian-virtual-machine:~/Downloads/a$ env LANG=C make
CROSS_COMPILE=powerpc-linux-gnu- ARCH=powerpc uImage
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
CALL arch/powerpc/kernel/systbl_chk.sh
CC arch/powerpc/kvm/powerpc.o
In file included from arch/powerpc/kvm/powerpc.c:51:0:
arch/powerpc/kvm/trace.h:9:0: error: "TRACE_INCLUDE_PATH" redefined
[-Werror]
#define TRACE_INCLUDE_PATH .
^
In file included from arch/powerpc/kvm/../mm/mmu_decl.h:25:0,
from arch/powerpc/kvm/powerpc.c:48:
./arch/powerpc/include/asm/trace.h:224:0: note: this is the location of
the previous definition
#define TRACE_INCLUDE_PATH asm
^
cc1: all warnings being treated as errors
scripts/Makefile.build:305: recipe for target
'arch/powerpc/kvm/powerpc.o' failed
make[2]: *** [arch/powerpc/kvm/powerpc.o] Error 1
scripts/Makefile.build:546: recipe for target 'arch/powerpc/kvm' failed
make[1]: *** [arch/powerpc/kvm] Error 2
Makefile:1052: recipe for target 'arch/powerpc' failed
make: *** [arch/powerpc] Error 2
---
I deleted the definition of 'TRACE_INCLUDE_PATH' in
'arch/powerpc/kvm/trace.h'. After that the kernel compiled without any
problems.
-- Christian
From: Christian Zigotzky <hidden> Date: 2018-10-29 17:03:33
Hello,
I figured out that the problem is in the OF source code of the commit:
Merge tag devicetree-for-4.20. [1]
I reverted the following OF files and SMP works!
drivers/of/base.c
drivers/of/device.c
drivers/of/of_mdio.c
drivers/of/of_numa.c
drivers/of/of_private.h
drivers/of/overlay.c
drivers/of/platform.c
drivers/of/unittest-data/overlay_15.dts
drivers/of/unittest-data/tests-overlay.dtsi
drivers/of/unittest.c
include/linux/of.h
Cheers,
Christian
[1]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b27186abb37b7bd19e0ca434f4f425c807dbd708
On 29 October 2018 at 10:56AM, Christian Zigotzky wrote:
Hello,
I have figured out that the commit 'devicetree-for-4.20' [1] is
responsible for the SMP problem. I was able to revert this commit with
'git revert b27186abb37b7bd19e0ca434f4f425c807dbd708 -m 1' today.
[master ec81438] Revert "Merge tag 'devicetree-for-4.20' of
git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux"
138 files changed, 931 insertions(+), 1538 deletions(-)
rename Documentation/devicetree/bindings/arm/{atmel-sysregs.txt =>
atmel-at91.txt} (67%)
delete mode 100644
Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-dcfg.txt
delete mode 100644
Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-scfg.txt
rename Documentation/devicetree/bindings/arm/{zte,sysctrl.txt =>
zte.txt} (62%)
delete mode 100644 Documentation/devicetree/bindings/misc/lwn-bk4.txt
create mode 100644 arch/c6x/boot/dts/linked_dtb.S
delete mode 100644 arch/nios2/boot/dts/Makefile
create mode 100644 arch/nios2/boot/linked_dtb.S
delete mode 100644 arch/powerpc/boot/dts/Makefile
delete mode 100644 arch/powerpc/boot/dts/fsl/Makefile
delete mode 100644 scripts/dtc/yamltree.c
It solves the SMP problem! SMP works again on my P5020 board and on
virtual e5500 QEMU machines.
QEMU command: ./qemu-system-ppc64 -M ppce500 -cpu e5500 -m 2048
-kernel /home/christian/Downloads/uImage-4.20-alpha5 -drive
format=raw,file=/home/christian/Dokumente/ubuntu_MATE_16.04.3_LTS_PowerPC_QEMU/ubuntu_MATE_16.04_PowerPC.img,index=0,if=virtio
-nic user,model=e1000 -append "rw root=/dev/vda3" -device virtio-vga
-device virtio-mouse-pci -device virtio-keyboard-pci -soundhw es1370
-smp 4
Screenshot:
https://plus.google.com/u/0/photos/photo/115515624056477014971/6617705776207990082
Do we need a new dtb file or is it a bug?
Thanks,
Christian
[1]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b27186abb37b7bd19e0ca434f4f425c807dbd708
On 28 October 2018 at 5:35PM, Christian Zigotzky wrote:
quoted
Hello,
SMP doesn't work anymore with the latest Git kernel (28/10/18 11:12AM
GMT) on my P5020 board and on virtual e5500 QEMU machines.
Board with P5020 dual core CPU:
[ 0.000000] -----------------------------------------------------
[ 0.000000] phys_mem_size = 0x200000000
[ 0.000000] dcache_bsize = 0x40
[ 0.000000] icache_bsize = 0x40
[ 0.000000] cpu_features = 0x00000003008003b4
[ 0.000000] possible = 0x00000003009003b4
[ 0.000000] always = 0x00000003008003b4
[ 0.000000] cpu_user_features = 0xcc008000 0x08000000
[ 0.000000] mmu_features = 0x000a0010
[ 0.000000] firmware_features = 0x0000000000000000
[ 0.000000] -----------------------------------------------------
[ 0.000000] CoreNet Generic board
...
[ 0.002161] smp: Bringing up secondary CPUs ...
[ 0.002339] No cpu-release-addr for cpu 1
[ 0.002347] smp: failed starting cpu 1 (rc -2)
[ 0.002401] smp: Brought up 1 node, 1 CPU
Virtual e5500 quad core QEMU machine:
[ 0.026394] smp: Bringing up secondary CPUs ...
[ 0.027831] No cpu-release-addr for cpu 1
[ 0.027989] smp: failed starting cpu 1 (rc -2)
[ 0.030143] No cpu-release-addr for cpu 2
[ 0.030304] smp: failed starting cpu 2 (rc -2)
[ 0.032400] No cpu-release-addr for cpu 3
[ 0.032533] smp: failed starting cpu 3 (rc -2)
[ 0.033117] smp: Brought up 1 node, 1 CPU
QEMU command: ./qemu-system-ppc64 -M ppce500 -cpu e5500 -m 2048
-kernel
/home/christian/Downloads/vmlinux-4.20-alpha4-AmigaOne_X1000_X5000/X5000_and_QEMU_e5500/uImage-4.20
-drive
format=raw,file=/home/christian/Downloads/MATE_PowerPC_Remix_2017_0.9.img,index=0,if=virtio
-nic user,model=e1000 -append "rw root=/dev/vda" -device virtio-vga
-device virtio-mouse-pci -device virtio-keyboard-pci -usb -soundhw
es1370 -smp 4
.config:
...
CONFIG_SMP=y
CONFIG_NR_CPUS=4
...
Please test the latest Git kernel on your NXP P50XX boards.
Thanks,
Christian
Hello,
I figured out that the problem is in the OF source code of the
commit: Merge tag devicetree-for-4.20. [1]
That's a merge commit. Can you bisect the branch and identify the
faulting commit ?
Christophe
I reverted the following OF files and SMP works!
drivers/of/base.c
drivers/of/device.c
drivers/of/of_mdio.c
drivers/of/of_numa.c
drivers/of/of_private.h
drivers/of/overlay.c
drivers/of/platform.c
drivers/of/unittest-data/overlay_15.dts
drivers/of/unittest-data/tests-overlay.dtsi
drivers/of/unittest.c
include/linux/of.h
Cheers,
Christian
[1]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b27186abb37b7bd19e0ca434f4f425c807dbd708
On 29 October 2018 at 10:56AM, Christian Zigotzky wrote:
quoted
Hello,
I have figured out that the commit 'devicetree-for-4.20' [1] is
responsible for the SMP problem. I was able to revert this commit
with 'git revert b27186abb37b7bd19e0ca434f4f425c807dbd708 -m 1'
today.
[master ec81438] Revert "Merge tag 'devicetree-for-4.20' of
git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux"
138 files changed, 931 insertions(+), 1538 deletions(-)
rename Documentation/devicetree/bindings/arm/{atmel-sysregs.txt =>
atmel-at91.txt} (67%)
delete mode 100644
Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-dcfg.txt
delete mode 100644
Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-scfg.txt
rename Documentation/devicetree/bindings/arm/{zte,sysctrl.txt =>
zte.txt} (62%)
delete mode 100644 Documentation/devicetree/bindings/misc/lwn-bk4.txt
create mode 100644 arch/c6x/boot/dts/linked_dtb.S
delete mode 100644 arch/nios2/boot/dts/Makefile
create mode 100644 arch/nios2/boot/linked_dtb.S
delete mode 100644 arch/powerpc/boot/dts/Makefile
delete mode 100644 arch/powerpc/boot/dts/fsl/Makefile
delete mode 100644 scripts/dtc/yamltree.c
It solves the SMP problem! SMP works again on my P5020 board and on
virtual e5500 QEMU machines.
QEMU command: ./qemu-system-ppc64 -M ppce500 -cpu e5500 -m 2048
-kernel /home/christian/Downloads/uImage-4.20-alpha5 -drive
format=raw,file=/home/christian/Dokumente/ubuntu_MATE_16.04.3_LTS_PowerPC_QEMU/ubuntu_MATE_16.04_PowerPC.img,index=0,if=virtio -nic user,model=e1000 -append "rw root=/dev/vda3" -device virtio-vga -device virtio-mouse-pci -device virtio-keyboard-pci -soundhw es1370 -smp
4
Screenshot:
https://plus.google.com/u/0/photos/photo/115515624056477014971/6617705776207990082
Do we need a new dtb file or is it a bug?
Thanks,
Christian
[1]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b27186abb37b7bd19e0ca434f4f425c807dbd708
On 28 October 2018 at 5:35PM, Christian Zigotzky wrote:
quoted
Hello,
SMP doesn't work anymore with the latest Git kernel (28/10/18
11:12AM GMT) on my P5020 board and on virtual e5500 QEMU machines.
Board with P5020 dual core CPU:
[ 0.000000] -----------------------------------------------------
[ 0.000000] phys_mem_size = 0x200000000
[ 0.000000] dcache_bsize = 0x40
[ 0.000000] icache_bsize = 0x40
[ 0.000000] cpu_features = 0x00000003008003b4
[ 0.000000] possible = 0x00000003009003b4
[ 0.000000] always = 0x00000003008003b4
[ 0.000000] cpu_user_features = 0xcc008000 0x08000000
[ 0.000000] mmu_features = 0x000a0010
[ 0.000000] firmware_features = 0x0000000000000000
[ 0.000000] -----------------------------------------------------
[ 0.000000] CoreNet Generic board
...
[ 0.002161] smp: Bringing up secondary CPUs ...
[ 0.002339] No cpu-release-addr for cpu 1
[ 0.002347] smp: failed starting cpu 1 (rc -2)
[ 0.002401] smp: Brought up 1 node, 1 CPU
Virtual e5500 quad core QEMU machine:
[ 0.026394] smp: Bringing up secondary CPUs ...
[ 0.027831] No cpu-release-addr for cpu 1
[ 0.027989] smp: failed starting cpu 1 (rc -2)
[ 0.030143] No cpu-release-addr for cpu 2
[ 0.030304] smp: failed starting cpu 2 (rc -2)
[ 0.032400] No cpu-release-addr for cpu 3
[ 0.032533] smp: failed starting cpu 3 (rc -2)
[ 0.033117] smp: Brought up 1 node, 1 CPU
QEMU command: ./qemu-system-ppc64 -M ppce500 -cpu e5500 -m 2048
-kernel
/home/christian/Downloads/vmlinux-4.20-alpha4-AmigaOne_X1000_X5000/X5000_and_QEMU_e5500/uImage-4.20 -drive format=raw,file=/home/christian/Downloads/MATE_PowerPC_Remix_2017_0.9.img,index=0,if=virtio -nic user,model=e1000 -append "rw root=/dev/vda" -device virtio-vga -device virtio-mouse-pci -device virtio-keyboard-pci -usb -soundhw es1370 -smp
4
.config:
...
CONFIG_SMP=y
CONFIG_NR_CPUS=4
...
Please test the latest Git kernel on your NXP P50XX boards.
Thanks,
Christian
From: Christian Zigotzky <hidden> Date: 2018-10-29 20:15:05
Hello Christophe,
Bisecting isn’t necessary because the problem is in the following files.
drivers/of/base.c
drivers/of/device.c
drivers/of/of_mdio.c
drivers/of/of_numa.c
drivers/of/of_private.h
drivers/of/overlay.c
drivers/of/platform.c
drivers/of/unittest-data/overlay_15.dts
drivers/of/unittest-data/tests-overlay.dtsi
drivers/of/unittest.c
include/linux/of.h
I removed the OF modifications from the merge commit 'devicetree-for-4.20' and SMP works again.
Cheers,
Christian
Sent from my iPhone
On 29. Oct 2018, at 19:13, LEROY Christophe [off-list ref] wrote:
Christian Zigotzky [off-list ref] a écrit :
quoted
Hello,
I figured out that the problem is in the OF source code of the commit: Merge tag devicetree-for-4.20. [1]
That's a merge commit. Can you bisect the branch and identify the faulting commit ?
Christophe
On 29 October 2018 at 10:56AM, Christian Zigotzky wrote:
Hello,
I have figured out that the commit 'devicetree-for-4.20' [1] is responsible for the SMP problem. I was able to revert this commit with 'git revert b27186abb37b7bd19e0ca434f4f425c807dbd708 -m 1' today.
[master ec81438] Revert "Merge tag 'devicetree-for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux"
138 files changed, 931 insertions(+), 1538 deletions(-)
rename Documentation/devicetree/bindings/arm/{atmel-sysregs.txt => atmel-at91.txt} (67%)
delete mode 100644 Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-dcfg.txt
delete mode 100644 Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-scfg.txt
rename Documentation/devicetree/bindings/arm/{zte,sysctrl.txt => zte.txt} (62%)
delete mode 100644 Documentation/devicetree/bindings/misc/lwn-bk4.txt
create mode 100644 arch/c6x/boot/dts/linked_dtb.S
delete mode 100644 arch/nios2/boot/dts/Makefile
create mode 100644 arch/nios2/boot/linked_dtb.S
delete mode 100644 arch/powerpc/boot/dts/Makefile
delete mode 100644 arch/powerpc/boot/dts/fsl/Makefile
delete mode 100644 scripts/dtc/yamltree.c
It solves the SMP problem! SMP works again on my P5020 board and on virtual e5500 QEMU machines.
QEMU command: ./qemu-system-ppc64 -M ppce500 -cpu e5500 -m 2048 -kernel /home/christian/Downloads/uImage-4.20-alpha5 -drive format=raw,file=/home/christian/Dokumente/ubuntu_MATE_16.04.3_LTS_PowerPC_QEMU/ubuntu_MATE_16.04_PowerPC.img,index=0,if=virtio -nic user,model=e1000 -append "rw root=/dev/vda3" -device virtio-vga -device virtio-mouse-pci -device virtio-keyboard-pci -soundhw es1370 -smp 4
Screenshot: https://plus.google.com/u/0/photos/photo/115515624056477014971/6617705776207990082
Do we need a new dtb file or is it a bug?
Thanks,
Christian
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b27186abb37b7bd19e0ca434f4f425c807dbd708
quoted
On 28 October 2018 at 5:35PM, Christian Zigotzky wrote:
Hello,
SMP doesn't work anymore with the latest Git kernel (28/10/18 11:12AM GMT) on my P5020 board and on virtual e5500 QEMU machines.
Board with P5020 dual core CPU:
[ 0.000000] -----------------------------------------------------
[ 0.000000] phys_mem_size = 0x200000000
[ 0.000000] dcache_bsize = 0x40
[ 0.000000] icache_bsize = 0x40
[ 0.000000] cpu_features = 0x00000003008003b4
[ 0.000000] possible = 0x00000003009003b4
[ 0.000000] always = 0x00000003008003b4
[ 0.000000] cpu_user_features = 0xcc008000 0x08000000
[ 0.000000] mmu_features = 0x000a0010
[ 0.000000] firmware_features = 0x0000000000000000
[ 0.000000] -----------------------------------------------------
[ 0.000000] CoreNet Generic board
...
[ 0.002161] smp: Bringing up secondary CPUs ...
[ 0.002339] No cpu-release-addr for cpu 1
[ 0.002347] smp: failed starting cpu 1 (rc -2)
[ 0.002401] smp: Brought up 1 node, 1 CPU
Virtual e5500 quad core QEMU machine:
[ 0.026394] smp: Bringing up secondary CPUs ...
[ 0.027831] No cpu-release-addr for cpu 1
[ 0.027989] smp: failed starting cpu 1 (rc -2)
[ 0.030143] No cpu-release-addr for cpu 2
[ 0.030304] smp: failed starting cpu 2 (rc -2)
[ 0.032400] No cpu-release-addr for cpu 3
[ 0.032533] smp: failed starting cpu 3 (rc -2)
[ 0.033117] smp: Brought up 1 node, 1 CPU
QEMU command: ./qemu-system-ppc64 -M ppce500 -cpu e5500 -m 2048 -kernel /home/christian/Downloads/vmlinux-4.20-alpha4-AmigaOne_X1000_X5000/X5000_and_QEMU_e5500/uImage-4.20 -drive format=raw,file=/home/christian/Downloads/MATE_PowerPC_Remix_2017_0.9.img,index=0,if=virtio -nic user,model=e1000 -append "rw root=/dev/vda" -device virtio-vga -device virtio-mouse-pci -device virtio-keyboard-pci -usb -soundhw es1370 -smp 4
.config:
...
CONFIG_SMP=y
CONFIG_NR_CPUS=4
...
Please test the latest Git kernel on your NXP P50XX boards.
Thanks,
Christian
From: Christian Zigotzky <hidden> Date: 2018-10-29 22:27:00
Little progress ...
I reverted the following two OF files of the commit 'Merge tag
devicetree-for-4.20' and SMP works! The problematic code is somewhere in
these two files.
a/include/linux/of.h
a/drivers/of/base.c
-- Christian
On 29 October 2018 at 6:00PM, Christian Zigotzky wrote:
Hello,
I figured out that the problem is in the OF source code of the commit:
Merge tag devicetree-for-4.20. [1]
I reverted the following OF files and SMP works!
drivers/of/base.c
drivers/of/device.c
drivers/of/of_mdio.c
drivers/of/of_numa.c
drivers/of/of_private.h
drivers/of/overlay.c
drivers/of/platform.c
drivers/of/unittest-data/overlay_15.dts
drivers/of/unittest-data/tests-overlay.dtsi
drivers/of/unittest.c
include/linux/of.h
Cheers,
Christian
[1]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b27186abb37b7bd19e0ca434f4f425c807dbd708
On 29 October 2018 at 10:56AM, Christian Zigotzky wrote:
quoted
Hello,
I have figured out that the commit 'devicetree-for-4.20' [1] is
responsible for the SMP problem. I was able to revert this commit
with 'git revert b27186abb37b7bd19e0ca434f4f425c807dbd708 -m 1' today.
[master ec81438] Revert "Merge tag 'devicetree-for-4.20' of
git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux"
138 files changed, 931 insertions(+), 1538 deletions(-)
rename Documentation/devicetree/bindings/arm/{atmel-sysregs.txt =>
atmel-at91.txt} (67%)
delete mode 100644
Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-dcfg.txt
delete mode 100644
Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-scfg.txt
rename Documentation/devicetree/bindings/arm/{zte,sysctrl.txt =>
zte.txt} (62%)
delete mode 100644 Documentation/devicetree/bindings/misc/lwn-bk4.txt
create mode 100644 arch/c6x/boot/dts/linked_dtb.S
delete mode 100644 arch/nios2/boot/dts/Makefile
create mode 100644 arch/nios2/boot/linked_dtb.S
delete mode 100644 arch/powerpc/boot/dts/Makefile
delete mode 100644 arch/powerpc/boot/dts/fsl/Makefile
delete mode 100644 scripts/dtc/yamltree.c
It solves the SMP problem! SMP works again on my P5020 board and on
virtual e5500 QEMU machines.
QEMU command: ./qemu-system-ppc64 -M ppce500 -cpu e5500 -m 2048
-kernel /home/christian/Downloads/uImage-4.20-alpha5 -drive
format=raw,file=/home/christian/Dokumente/ubuntu_MATE_16.04.3_LTS_PowerPC_QEMU/ubuntu_MATE_16.04_PowerPC.img,index=0,if=virtio
-nic user,model=e1000 -append "rw root=/dev/vda3" -device virtio-vga
-device virtio-mouse-pci -device virtio-keyboard-pci -soundhw es1370
-smp 4
Screenshot:
https://plus.google.com/u/0/photos/photo/115515624056477014971/6617705776207990082
Do we need a new dtb file or is it a bug?
Thanks,
Christian
[1]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b27186abb37b7bd19e0ca434f4f425c807dbd708
On 28 October 2018 at 5:35PM, Christian Zigotzky wrote:
quoted
Hello,
SMP doesn't work anymore with the latest Git kernel (28/10/18
11:12AM GMT) on my P5020 board and on virtual e5500 QEMU machines.
Board with P5020 dual core CPU:
[ 0.000000] -----------------------------------------------------
[ 0.000000] phys_mem_size = 0x200000000
[ 0.000000] dcache_bsize = 0x40
[ 0.000000] icache_bsize = 0x40
[ 0.000000] cpu_features = 0x00000003008003b4
[ 0.000000] possible = 0x00000003009003b4
[ 0.000000] always = 0x00000003008003b4
[ 0.000000] cpu_user_features = 0xcc008000 0x08000000
[ 0.000000] mmu_features = 0x000a0010
[ 0.000000] firmware_features = 0x0000000000000000
[ 0.000000] -----------------------------------------------------
[ 0.000000] CoreNet Generic board
...
[ 0.002161] smp: Bringing up secondary CPUs ...
[ 0.002339] No cpu-release-addr for cpu 1
[ 0.002347] smp: failed starting cpu 1 (rc -2)
[ 0.002401] smp: Brought up 1 node, 1 CPU
Virtual e5500 quad core QEMU machine:
[ 0.026394] smp: Bringing up secondary CPUs ...
[ 0.027831] No cpu-release-addr for cpu 1
[ 0.027989] smp: failed starting cpu 1 (rc -2)
[ 0.030143] No cpu-release-addr for cpu 2
[ 0.030304] smp: failed starting cpu 2 (rc -2)
[ 0.032400] No cpu-release-addr for cpu 3
[ 0.032533] smp: failed starting cpu 3 (rc -2)
[ 0.033117] smp: Brought up 1 node, 1 CPU
QEMU command: ./qemu-system-ppc64 -M ppce500 -cpu e5500 -m 2048
-kernel
/home/christian/Downloads/vmlinux-4.20-alpha4-AmigaOne_X1000_X5000/X5000_and_QEMU_e5500/uImage-4.20
-drive
format=raw,file=/home/christian/Downloads/MATE_PowerPC_Remix_2017_0.9.img,index=0,if=virtio
-nic user,model=e1000 -append "rw root=/dev/vda" -device virtio-vga
-device virtio-mouse-pci -device virtio-keyboard-pci -usb -soundhw
es1370 -smp 4
.config:
...
CONFIG_SMP=y
CONFIG_NR_CPUS=4
...
Please test the latest Git kernel on your NXP P50XX boards.
Thanks,
Christian
From: Scott Wood <oss@buserror.net> Date: 2018-10-29 23:08:30
On Mon, 2018-10-29 at 21:12 +0100, Christian Zigotzky wrote:
Hello Christophe,
Bisecting isn’t necessary because the problem is in the following files.
drivers/of/base.c
drivers/of/device.c
drivers/of/of_mdio.c
drivers/of/of_numa.c
drivers/of/of_private.h
drivers/of/overlay.c
drivers/of/platform.c
drivers/of/unittest-data/overlay_15.dts
drivers/of/unittest-data/tests-overlay.dtsi
drivers/of/unittest.c
include/linux/of.h
I removed the OF modifications from the merge commit 'devicetree-for-4.20'
and SMP works again.
Bisecting to get the specific non-merge commit that broke things would be much
more useful than simply identifying the affected file (especially if it's a
smallish change).
-Scott
From: Christian Zigotzky <hidden> Date: 2018-10-30 00:44:29
On 30 October 2018 at 00:04AM, Scott Wood wrote:
On Mon, 2018-10-29 at 21:12 +0100, Christian Zigotzky wrote:
quoted
Hello Christophe,
Bisecting isn’t necessary because the problem is in the following files.
drivers/of/base.c
drivers/of/device.c
drivers/of/of_mdio.c
drivers/of/of_numa.c
drivers/of/of_private.h
drivers/of/overlay.c
drivers/of/platform.c
drivers/of/unittest-data/overlay_15.dts
drivers/of/unittest-data/tests-overlay.dtsi
drivers/of/unittest.c
include/linux/of.h
I removed the OF modifications from the merge commit 'devicetree-for-4.20'
and SMP works again.
Bisecting to get the specific non-merge commit that broke things would be much
more useful than simply identifying the affected file (especially if it's a
smallish change).
-Scott
You're right but I had no luck with bisecting in the past. I think I
have to learn it more.
I found the problematic code and I created a patch today. SMP works with
this patch again.
Link: http://www.xenosoft.de/of.patch
of.patch
-------------------------------------------------------------------------------
diff -rupN a/drivers/of/base.c b/drivers/of/base.c
From: Christian Zigotzky <hidden> Date: 2018-10-30 01:44:39
OF patch for the latest Git kernel: http://www.xenosoft.de/of_v2.patch
----------------------------- of_v2.patch -----------------------------
diff -rupN a/drivers/of/base.c b/drivers/of/base.c
This just seems to revert a whole bunch of stuff, not really the right
way to go. Why is of_get_next_cpu_node() not finding your CPUs ? There
must be something wrong with the device-tree...
This just seems to revert a whole bunch of stuff, not really the right
way to go. Why is of_get_next_cpu_node() not finding your CPUs ? There
must be something wrong with the device-tree...
Maybe we need a new dtb for QEMU ppce500 and P50XX machines. I don't
know. For us it is good to have this patch because we can test further.
(other updates)
With this patch, SMP works again on virtual QEMU ppce500 and P50XX
machines. If you have another code, then I will test it with QEMU and my
P5020 board.
Thanks,
Christian
This just seems to revert a whole bunch of stuff, not really the right
way to go. Why is of_get_next_cpu_node() not finding your CPUs ? There
must be something wrong with the device-tree...
Maybe we need a new dtb for QEMU ppce500 and P50XX machines. I don't
know. For us it is good to have this patch because we can test
further. (other updates)
With this patch, SMP works again on virtual QEMU ppce500 and P50XX
machines. If you have another code, then I will test it with QEMU and
my P5020 board.
Thanks,
Christian
We use the 'cyrus_p5020.dts' file for creating the dtb file for our
P5020 board. You can find it in the official kernel source code.
(arch/powerpc/boot/dts/cyrus_p5020.dts)
For the virtual ppce500 machine I don't need to add a dtb file to the
QEMU command. But maybe there is a solution:
On 30 October 2018 at 3:18PM, Michael Ellerman wrote:
Hi Rob,
Sorry I missed this when you posted it.
Rob Herring [off-list ref] writes:
quoted
Iterating thru cpu nodes is a common pattern. Create a common iterator
which can find child nodes either by node name or device_type == cpu.
Using the former will allow for eventually dropping device_type
properties which are deprecated for FDT.
Device trees we see on powerpc generally don't (never?) use "cpu" as the
node name for CPU nodes. And many of those device trees come from
firmware, so we can't update them.
So dropping support for device_type is a non-starter from our POV.
cheers
From: Christian Zigotzky <hidden> Date: 2018-10-31 10:12:13
Hello,
I compiled the latest Git kernel today. The error 'TRACE_INCLUDE_PATH
redefined' still exist.
Cheers,
Christian
On 29 October 2018 at 11:22AM, Christian Zigotzky wrote:
Hello,
The latest Git kernel doesn't compile currently because of the
following error:
christian@christian-virtual-machine:~/Downloads/a$ env LANG=C make
CROSS_COMPILE=powerpc-linux-gnu- ARCH=powerpc uImage
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
CALL arch/powerpc/kernel/systbl_chk.sh
CC arch/powerpc/kvm/powerpc.o
In file included from arch/powerpc/kvm/powerpc.c:51:0:
arch/powerpc/kvm/trace.h:9:0: error: "TRACE_INCLUDE_PATH" redefined
[-Werror]
#define TRACE_INCLUDE_PATH .
^
In file included from arch/powerpc/kvm/../mm/mmu_decl.h:25:0,
from arch/powerpc/kvm/powerpc.c:48:
./arch/powerpc/include/asm/trace.h:224:0: note: this is the location
of the previous definition
#define TRACE_INCLUDE_PATH asm
^
cc1: all warnings being treated as errors
scripts/Makefile.build:305: recipe for target
'arch/powerpc/kvm/powerpc.o' failed
make[2]: *** [arch/powerpc/kvm/powerpc.o] Error 1
scripts/Makefile.build:546: recipe for target 'arch/powerpc/kvm' failed
make[1]: *** [arch/powerpc/kvm] Error 2
Makefile:1052: recipe for target 'arch/powerpc' failed
make: *** [arch/powerpc] Error 2
---
I deleted the definition of 'TRACE_INCLUDE_PATH' in
'arch/powerpc/kvm/trace.h'. After that the kernel compiled without any
problems.
-- Christian
From: Michael Ellerman <mpe@ellerman.id.au> Date: 2018-10-31 13:27:51
Christian Zigotzky [off-list ref] writes:
Little progress ...
I reverted the following two OF files of the commit 'Merge tag
devicetree-for-4.20' and SMP works! The problematic code is somewhere in
these two files.
a/include/linux/of.h
a/drivers/of/base.c
Hi Christian,
Trying to debug things by reverting like this can work, but it's quite
error prone and is usually only used *after* a bisect has identified the
suspect code, or if a bisect can't work for some reason.
I know you said you'd had trouble bisecting in the past, but this one
should be a good one to practice on.
You already identified that the merge of the devicetree changes was the
problem, ie.
b27186abb37b Merge tag 'devicetree-for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
So you do:
$ git show b27186abb37b
commit b27186abb37b7bd19e0ca434f4f425c807dbd708
Merge: 0ef7791e2bfb d061864b89c3
Author: Linus Torvalds [off-list ref]
Date: Fri Oct 26 12:09:58 2018 -0700
Merge tag 'devicetree-for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
And that shows you the two commits that were merged 0ef7791e2bfb and
d061864b89c3. If you look at them you see:
$ git log -1 --oneline 0ef7791e2bfb
0ef7791e2bfb Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal
$ git log -1 --oneline d061864b89c3
d061864b89c3 ARM: dt: relicense two DT binding IRQ headers
You can see that the first one is the previous commit on Linus' branch,
ie. an unrelated merge. The 2nd commit is the commit that was on top of
robh's tree, ie. that's the start of the interesting commits for us.
You can also get to that 2nd commit using b27186abb37b^2.
If you look at what came in via Rob's branch with:
$ git log --oneline d061864b89c3
or
$ git log --oneline b27186abb37b^2
You see there's quite a few commits, and in particular there's another
merge:
389d0a8a7af8 Merge branch 'dt/cpu-type-rework' into dt/next
If we log the 2nd parent of that, we see:
$ git log --oneline 389d0a8a7af8^2
4c29e5934f6c microblaze: get cpu node with of_get_cpu_node
a691240e36e3 fbdev: fsl-diu: get cpu node with of_get_cpu_node
651d44f9679c of: use for_each_of_cpu_node iterator
a9a455e854cd iommu: fsl_pamu: use for_each_of_cpu_node iterator
37dc218bed44 edac: cpc925: use for_each_of_cpu_node iterator
76ec23b127cd clk: mvebu: use for_each_of_cpu_node iterator
7de8f4aa2f35 x86: DT: use for_each_of_cpu_node iterator
8cabf5bc1049 SH: use for_each_of_cpu_node iterator
38959a091e4a powerpc: 8xx: get cpu node with of_get_cpu_node
84dbc69a2ff3 powerpc: 4xx: get cpu node with of_get_cpu_node
a94fe366340a powerpc: use for_each_of_cpu_node iterator
5e5abae858b5 openrisc: use for_each_of_cpu_node iterator
1f0fe1f67cef nios2: get cpu node with of_get_cpu_node
5a931a3c80b5 c6x: use for_each_of_cpu_node iterator
de76e70a8d4e arm64: use for_each_of_cpu_node iterator
5af5d40c4015 ARM: shmobile: use for_each_of_cpu_node iterator
07d44f1f82b7 ARM: topology: remove unneeded check for /cpus node
d4866f751edf ARM: use for_each_of_cpu_node iterator
6487c15f1cc9 of: Support matching cpu nodes with no 'reg' property
f1f207e43b8a of: Add cpu node iterator for_each_of_cpu_node()
f6707fd6241e of: make PowerMac cache node search conditional on CONFIG_PPC_PMAC
6d0a70a284be vsprintf: print OF node name using full_name
a613b26a5013 of: Convert to using %pOFn instead of device_node.name
6901378c799d of/unittest: add printf tests for node name
b610e2ff4622 of/unittest: remove use of node name pointer in overlay high level test
57361846b52b (tag: v4.19-rc2) Linux 4.19-rc2
So if we think the suspect commit is in there, we would confirm that by
checking out v4.19-rc2 and testing it works. And then checkout out
4c29e5934f6c and testing that it's broken.
Assuming the former worked and the latter was broken, we do:
$ git bisect good v4.19-rc2
$ git bisect bad 4c29e5934f6c
And then just follow the prompts.
One thing to watch out for is hitting an unrelated bug, that can
sometimes derail your bisection.
In this case the bug we're looking for is that CPU 1 isn't onlined
properly. But if the system doesn't boot entirely for example then you
shouldn't mark the commit as bad, instead it's better to skip it. Then
git will choose a different commit for you to test.
Anyway hope that helps.
cheers
On 29 October 2018 at 6:00PM, Christian Zigotzky wrote:
quoted
Hello,
I figured out that the problem is in the OF source code of the commit:
Merge tag devicetree-for-4.20. [1]
I reverted the following OF files and SMP works!
drivers/of/base.c
drivers/of/device.c
drivers/of/of_mdio.c
drivers/of/of_numa.c
drivers/of/of_private.h
drivers/of/overlay.c
drivers/of/platform.c
drivers/of/unittest-data/overlay_15.dts
drivers/of/unittest-data/tests-overlay.dtsi
drivers/of/unittest.c
include/linux/of.h
Cheers,
Christian
[1]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b27186abb37b7bd19e0ca434f4f425c807dbd708
On 29 October 2018 at 10:56AM, Christian Zigotzky wrote:
quoted
Hello,
I have figured out that the commit 'devicetree-for-4.20' [1] is
responsible for the SMP problem. I was able to revert this commit
with 'git revert b27186abb37b7bd19e0ca434f4f425c807dbd708 -m 1' today.
[master ec81438] Revert "Merge tag 'devicetree-for-4.20' of
git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux"
138 files changed, 931 insertions(+), 1538 deletions(-)
rename Documentation/devicetree/bindings/arm/{atmel-sysregs.txt =>
atmel-at91.txt} (67%)
delete mode 100644
Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-dcfg.txt
delete mode 100644
Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-scfg.txt
rename Documentation/devicetree/bindings/arm/{zte,sysctrl.txt =>
zte.txt} (62%)
delete mode 100644 Documentation/devicetree/bindings/misc/lwn-bk4.txt
create mode 100644 arch/c6x/boot/dts/linked_dtb.S
delete mode 100644 arch/nios2/boot/dts/Makefile
create mode 100644 arch/nios2/boot/linked_dtb.S
delete mode 100644 arch/powerpc/boot/dts/Makefile
delete mode 100644 arch/powerpc/boot/dts/fsl/Makefile
delete mode 100644 scripts/dtc/yamltree.c
It solves the SMP problem! SMP works again on my P5020 board and on
virtual e5500 QEMU machines.
QEMU command: ./qemu-system-ppc64 -M ppce500 -cpu e5500 -m 2048
-kernel /home/christian/Downloads/uImage-4.20-alpha5 -drive
format=raw,file=/home/christian/Dokumente/ubuntu_MATE_16.04.3_LTS_PowerPC_QEMU/ubuntu_MATE_16.04_PowerPC.img,index=0,if=virtio
-nic user,model=e1000 -append "rw root=/dev/vda3" -device virtio-vga
-device virtio-mouse-pci -device virtio-keyboard-pci -soundhw es1370
-smp 4
Screenshot:
https://plus.google.com/u/0/photos/photo/115515624056477014971/6617705776207990082
Do we need a new dtb file or is it a bug?
Thanks,
Christian
[1]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b27186abb37b7bd19e0ca434f4f425c807dbd708
On 28 October 2018 at 5:35PM, Christian Zigotzky wrote:
quoted
Hello,
SMP doesn't work anymore with the latest Git kernel (28/10/18
11:12AM GMT) on my P5020 board and on virtual e5500 QEMU machines.
Board with P5020 dual core CPU:
[ 0.000000] -----------------------------------------------------
[ 0.000000] phys_mem_size = 0x200000000
[ 0.000000] dcache_bsize = 0x40
[ 0.000000] icache_bsize = 0x40
[ 0.000000] cpu_features = 0x00000003008003b4
[ 0.000000] possible = 0x00000003009003b4
[ 0.000000] always = 0x00000003008003b4
[ 0.000000] cpu_user_features = 0xcc008000 0x08000000
[ 0.000000] mmu_features = 0x000a0010
[ 0.000000] firmware_features = 0x0000000000000000
[ 0.000000] -----------------------------------------------------
[ 0.000000] CoreNet Generic board
...
[ 0.002161] smp: Bringing up secondary CPUs ...
[ 0.002339] No cpu-release-addr for cpu 1
[ 0.002347] smp: failed starting cpu 1 (rc -2)
[ 0.002401] smp: Brought up 1 node, 1 CPU
Virtual e5500 quad core QEMU machine:
[ 0.026394] smp: Bringing up secondary CPUs ...
[ 0.027831] No cpu-release-addr for cpu 1
[ 0.027989] smp: failed starting cpu 1 (rc -2)
[ 0.030143] No cpu-release-addr for cpu 2
[ 0.030304] smp: failed starting cpu 2 (rc -2)
[ 0.032400] No cpu-release-addr for cpu 3
[ 0.032533] smp: failed starting cpu 3 (rc -2)
[ 0.033117] smp: Brought up 1 node, 1 CPU
QEMU command: ./qemu-system-ppc64 -M ppce500 -cpu e5500 -m 2048
-kernel
/home/christian/Downloads/vmlinux-4.20-alpha4-AmigaOne_X1000_X5000/X5000_and_QEMU_e5500/uImage-4.20
-drive
format=raw,file=/home/christian/Downloads/MATE_PowerPC_Remix_2017_0.9.img,index=0,if=virtio
-nic user,model=e1000 -append "rw root=/dev/vda" -device virtio-vga
-device virtio-mouse-pci -device virtio-keyboard-pci -usb -soundhw
es1370 -smp 4
.config:
...
CONFIG_SMP=y
CONFIG_NR_CPUS=4
...
Please test the latest Git kernel on your NXP P50XX boards.
Thanks,
Christian
From: Christian Zigotzky <hidden> Date: 2018-10-31 13:41:42
Hi Michael,
Many thanks for this good explanation. I will try to learn more about
bisecting. Sometimes the problem is the time. I usually work for a Linux
first level support for our AmigaOne machines. That means my main work
is end user support. Therefore I have to learn more about second and
third level Linux support.
Cheers,
Christian
On 31 October 2018 at 2:20PM, Michael Ellerman wrote:
Christian Zigotzky [off-list ref] writes:
quoted
Little progress ...
I reverted the following two OF files of the commit 'Merge tag
devicetree-for-4.20' and SMP works! The problematic code is somewhere in
these two files.
a/include/linux/of.h
a/drivers/of/base.c
Hi Christian,
Trying to debug things by reverting like this can work, but it's quite
error prone and is usually only used *after* a bisect has identified the
suspect code, or if a bisect can't work for some reason.
I know you said you'd had trouble bisecting in the past, but this one
should be a good one to practice on.
You already identified that the merge of the devicetree changes was the
problem, ie.
b27186abb37b Merge tag 'devicetree-for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
So you do:
$ git show b27186abb37b
commit b27186abb37b7bd19e0ca434f4f425c807dbd708
Merge: 0ef7791e2bfb d061864b89c3
Author: Linus Torvalds [off-list ref]
Date: Fri Oct 26 12:09:58 2018 -0700
Merge tag 'devicetree-for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
And that shows you the two commits that were merged 0ef7791e2bfb and
d061864b89c3. If you look at them you see:
$ git log -1 --oneline 0ef7791e2bfb
0ef7791e2bfb Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal
$ git log -1 --oneline d061864b89c3
d061864b89c3 ARM: dt: relicense two DT binding IRQ headers
You can see that the first one is the previous commit on Linus' branch,
ie. an unrelated merge. The 2nd commit is the commit that was on top of
robh's tree, ie. that's the start of the interesting commits for us.
You can also get to that 2nd commit using b27186abb37b^2.
If you look at what came in via Rob's branch with:
$ git log --oneline d061864b89c3
or
$ git log --oneline b27186abb37b^2
You see there's quite a few commits, and in particular there's another
merge:
389d0a8a7af8 Merge branch 'dt/cpu-type-rework' into dt/next
If we log the 2nd parent of that, we see:
$ git log --oneline 389d0a8a7af8^2
4c29e5934f6c microblaze: get cpu node with of_get_cpu_node
a691240e36e3 fbdev: fsl-diu: get cpu node with of_get_cpu_node
651d44f9679c of: use for_each_of_cpu_node iterator
a9a455e854cd iommu: fsl_pamu: use for_each_of_cpu_node iterator
37dc218bed44 edac: cpc925: use for_each_of_cpu_node iterator
76ec23b127cd clk: mvebu: use for_each_of_cpu_node iterator
7de8f4aa2f35 x86: DT: use for_each_of_cpu_node iterator
8cabf5bc1049 SH: use for_each_of_cpu_node iterator
38959a091e4a powerpc: 8xx: get cpu node with of_get_cpu_node
84dbc69a2ff3 powerpc: 4xx: get cpu node with of_get_cpu_node
a94fe366340a powerpc: use for_each_of_cpu_node iterator
5e5abae858b5 openrisc: use for_each_of_cpu_node iterator
1f0fe1f67cef nios2: get cpu node with of_get_cpu_node
5a931a3c80b5 c6x: use for_each_of_cpu_node iterator
de76e70a8d4e arm64: use for_each_of_cpu_node iterator
5af5d40c4015 ARM: shmobile: use for_each_of_cpu_node iterator
07d44f1f82b7 ARM: topology: remove unneeded check for /cpus node
d4866f751edf ARM: use for_each_of_cpu_node iterator
6487c15f1cc9 of: Support matching cpu nodes with no 'reg' property
f1f207e43b8a of: Add cpu node iterator for_each_of_cpu_node()
f6707fd6241e of: make PowerMac cache node search conditional on CONFIG_PPC_PMAC
6d0a70a284be vsprintf: print OF node name using full_name
a613b26a5013 of: Convert to using %pOFn instead of device_node.name
6901378c799d of/unittest: add printf tests for node name
b610e2ff4622 of/unittest: remove use of node name pointer in overlay high level test
57361846b52b (tag: v4.19-rc2) Linux 4.19-rc2
So if we think the suspect commit is in there, we would confirm that by
checking out v4.19-rc2 and testing it works. And then checkout out
4c29e5934f6c and testing that it's broken.
Assuming the former worked and the latter was broken, we do:
$ git bisect good v4.19-rc2
$ git bisect bad 4c29e5934f6c
And then just follow the prompts.
One thing to watch out for is hitting an unrelated bug, that can
sometimes derail your bisection.
In this case the bug we're looking for is that CPU 1 isn't onlined
properly. But if the system doesn't boot entirely for example then you
shouldn't mark the commit as bad, instead it's better to skip it. Then
git will choose a different commit for you to test.
Anyway hope that helps.
cheers
quoted
On 29 October 2018 at 6:00PM, Christian Zigotzky wrote:
quoted
Hello,
I figured out that the problem is in the OF source code of the commit:
Merge tag devicetree-for-4.20. [1]
I reverted the following OF files and SMP works!
drivers/of/base.c
drivers/of/device.c
drivers/of/of_mdio.c
drivers/of/of_numa.c
drivers/of/of_private.h
drivers/of/overlay.c
drivers/of/platform.c
drivers/of/unittest-data/overlay_15.dts
drivers/of/unittest-data/tests-overlay.dtsi
drivers/of/unittest.c
include/linux/of.h
Cheers,
Christian
[1]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b27186abb37b7bd19e0ca434f4f425c807dbd708
On 29 October 2018 at 10:56AM, Christian Zigotzky wrote:
quoted
Hello,
I have figured out that the commit 'devicetree-for-4.20' [1] is
responsible for the SMP problem. I was able to revert this commit
with 'git revert b27186abb37b7bd19e0ca434f4f425c807dbd708 -m 1' today.
[master ec81438] Revert "Merge tag 'devicetree-for-4.20' of
git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux"
138 files changed, 931 insertions(+), 1538 deletions(-)
rename Documentation/devicetree/bindings/arm/{atmel-sysregs.txt =>
atmel-at91.txt} (67%)
delete mode 100644
Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-dcfg.txt
delete mode 100644
Documentation/devicetree/bindings/arm/freescale/fsl,layerscape-scfg.txt
rename Documentation/devicetree/bindings/arm/{zte,sysctrl.txt =>
zte.txt} (62%)
delete mode 100644 Documentation/devicetree/bindings/misc/lwn-bk4.txt
create mode 100644 arch/c6x/boot/dts/linked_dtb.S
delete mode 100644 arch/nios2/boot/dts/Makefile
create mode 100644 arch/nios2/boot/linked_dtb.S
delete mode 100644 arch/powerpc/boot/dts/Makefile
delete mode 100644 arch/powerpc/boot/dts/fsl/Makefile
delete mode 100644 scripts/dtc/yamltree.c
It solves the SMP problem! SMP works again on my P5020 board and on
virtual e5500 QEMU machines.
QEMU command: ./qemu-system-ppc64 -M ppce500 -cpu e5500 -m 2048
-kernel /home/christian/Downloads/uImage-4.20-alpha5 -drive
format=raw,file=/home/christian/Dokumente/ubuntu_MATE_16.04.3_LTS_PowerPC_QEMU/ubuntu_MATE_16.04_PowerPC.img,index=0,if=virtio
-nic user,model=e1000 -append "rw root=/dev/vda3" -device virtio-vga
-device virtio-mouse-pci -device virtio-keyboard-pci -soundhw es1370
-smp 4
Screenshot:
https://plus.google.com/u/0/photos/photo/115515624056477014971/6617705776207990082
Do we need a new dtb file or is it a bug?
Thanks,
Christian
[1]
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b27186abb37b7bd19e0ca434f4f425c807dbd708
On 28 October 2018 at 5:35PM, Christian Zigotzky wrote:
quoted
Hello,
SMP doesn't work anymore with the latest Git kernel (28/10/18
11:12AM GMT) on my P5020 board and on virtual e5500 QEMU machines.
Board with P5020 dual core CPU:
[ 0.000000] -----------------------------------------------------
[ 0.000000] phys_mem_size = 0x200000000
[ 0.000000] dcache_bsize = 0x40
[ 0.000000] icache_bsize = 0x40
[ 0.000000] cpu_features = 0x00000003008003b4
[ 0.000000] possible = 0x00000003009003b4
[ 0.000000] always = 0x00000003008003b4
[ 0.000000] cpu_user_features = 0xcc008000 0x08000000
[ 0.000000] mmu_features = 0x000a0010
[ 0.000000] firmware_features = 0x0000000000000000
[ 0.000000] -----------------------------------------------------
[ 0.000000] CoreNet Generic board
...
[ 0.002161] smp: Bringing up secondary CPUs ...
[ 0.002339] No cpu-release-addr for cpu 1
[ 0.002347] smp: failed starting cpu 1 (rc -2)
[ 0.002401] smp: Brought up 1 node, 1 CPU
Virtual e5500 quad core QEMU machine:
[ 0.026394] smp: Bringing up secondary CPUs ...
[ 0.027831] No cpu-release-addr for cpu 1
[ 0.027989] smp: failed starting cpu 1 (rc -2)
[ 0.030143] No cpu-release-addr for cpu 2
[ 0.030304] smp: failed starting cpu 2 (rc -2)
[ 0.032400] No cpu-release-addr for cpu 3
[ 0.032533] smp: failed starting cpu 3 (rc -2)
[ 0.033117] smp: Brought up 1 node, 1 CPU
QEMU command: ./qemu-system-ppc64 -M ppce500 -cpu e5500 -m 2048
-kernel
/home/christian/Downloads/vmlinux-4.20-alpha4-AmigaOne_X1000_X5000/X5000_and_QEMU_e5500/uImage-4.20
-drive
format=raw,file=/home/christian/Downloads/MATE_PowerPC_Remix_2017_0.9.img,index=0,if=virtio
-nic user,model=e1000 -append "rw root=/dev/vda" -device virtio-vga
-device virtio-mouse-pci -device virtio-keyboard-pci -usb -soundhw
es1370 -smp 4
.config:
...
CONFIG_SMP=y
CONFIG_NR_CPUS=4
...
Please test the latest Git kernel on your NXP P50XX boards.
Thanks,
Christian
From: Christian Zigotzky <hidden> Date: 2018-11-05 07:12:59
Hello,
I compiled the RC1 of kernel 4.20 today. The error 'TRACE_INCLUDE_PATH
redefined' still exist. Please find attached the kernel config.
Cheers,
Christian
On 31 October 2018 at 11:09AM, Christian Zigotzky wrote:
Hello,
I compiled the latest Git kernel today. The error 'TRACE_INCLUDE_PATH
redefined' still exist.
Cheers,
Christian
On 29 October 2018 at 11:22AM, Christian Zigotzky wrote:
quoted
Hello,
The latest Git kernel doesn't compile currently because of the
following error:
christian@christian-virtual-machine:~/Downloads/a$ env LANG=C make
CROSS_COMPILE=powerpc-linux-gnu- ARCH=powerpc uImage
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
CALL arch/powerpc/kernel/systbl_chk.sh
CC arch/powerpc/kvm/powerpc.o
In file included from arch/powerpc/kvm/powerpc.c:51:0:
arch/powerpc/kvm/trace.h:9:0: error: "TRACE_INCLUDE_PATH" redefined
[-Werror]
#define TRACE_INCLUDE_PATH .
^
In file included from arch/powerpc/kvm/../mm/mmu_decl.h:25:0,
from arch/powerpc/kvm/powerpc.c:48:
./arch/powerpc/include/asm/trace.h:224:0: note: this is the location
of the previous definition
#define TRACE_INCLUDE_PATH asm
^
cc1: all warnings being treated as errors
scripts/Makefile.build:305: recipe for target
'arch/powerpc/kvm/powerpc.o' failed
make[2]: *** [arch/powerpc/kvm/powerpc.o] Error 1
scripts/Makefile.build:546: recipe for target 'arch/powerpc/kvm' failed
make[1]: *** [arch/powerpc/kvm] Error 2
Makefile:1052: recipe for target 'arch/powerpc' failed
make: *** [arch/powerpc] Error 2
---
I deleted the definition of 'TRACE_INCLUDE_PATH' in
'arch/powerpc/kvm/trace.h'. After that the kernel compiled without
any problems.
-- Christian