All of lore.kernel.org
 help / color / mirror / Atom feed
* omap2plus_defconfig broken on ARMv6
@ 2019-05-24 22:07 ` Aaro Koskinen
  0 siblings, 0 replies; 8+ messages in thread
From: Aaro Koskinen @ 2019-05-24 22:07 UTC (permalink / raw)
  To: linux-omap, linux-arm-kernel, Russell King, Tony Lindgren

Hi,

Noticed today that booting omap2plus_defconfig on N8x0 crashes
early. Disabling CONFIG_SMP makes it work.

Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.2.0-rc1-n8x0-los_925980+-00233-g0a72ef899014 (aaro@amd-fx-6350) (gcc version 8.3.0 (GCC)) #2 SMP Fri May 24 23:55:08 EEST 2019
[    0.000000] CPU: ARMv6-compatible processor [4107b362] revision 2 (ARMv6TEJ), cr=00c5387d
[    0.000000] CPU: VIPT aliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Nokia N810
[    0.000000] printk: bootconsole [earlycon0] enabled
[    0.000000] Memory policy: Data cache writeback
[    0.000000] CPU: All CPU(s) started in SVC mode.
[    0.000000] OMAP2420
[    0.000000] percpu: Embedded 16 pages/cpu s33996 r8192 d23348 u65536
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32512
[    0.000000] Kernel command line: console=ttyO2,115200 earlyprintk
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Memory: 119992K/131072K available (4717K kernel code, 153K rwdata, 1488K rodata, 2080K init, 1128K bss, 11080K reserved, 0K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] IRQ: Found an INTC at 0x(ptrval) (revision 2.0) with 96 interrupts
[    0.000000] random: get_random_bytes called from start_kernel+0x250/0x424 with crng_init=0
[    0.000000] Clocking rate (Crystal/DPLL/MPU): 19.2/658/329 MHz
[    0.000000] OMAP clockevent source: timer1 at 32768 Hz
[    0.000000] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
[    0.000030] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 65535999984741ns
[    0.008605] OMAP clocksource: 32k_counter at 32768 Hz
[    0.014007] hw-breakpoint: CPUID feature registers not supported. Assuming v6 debug is present.
[    0.023468] Console: colour dummy device 80x30
[    0.028137] Calibrating delay loop... 326.86 BogoMIPS (lpj=1634304)
[    0.088439] pid_max: default: 32768 minimum: 301
[    0.093658] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.100494] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.108276] Internal error: Oops - undefined instruction: 0 [#1] SMP ARM
[    0.115203] Modules linked in:
[    0.118377] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.2.0-rc1-n8x0-los_925980+-00233-g0a72ef899014 #2
[    0.128021] Hardware name: Generic OMAP2420 (Flattened Device Tree)
[    0.134521] PC is at lockref_get+0x2c/0xd0
[    0.138732] LR is at 0x0
[    0.141357] pc : [<c023701c>]    lr : [<00000000>]    psr: 60000053
[    0.147796] sp : c0843ea0  ip : 00000001  fp : c0666a38
[    0.153198] r10: 00000001  r9 : c0868700  r8 : c0669624
[    0.158569] r7 : 00000000  r6 : c00de694  r5 : 00000002  r4 : 00010001
[    0.165283] r3 : 00000001  r2 : 00010001  r1 : 00010001  r0 : c7402050
[    0.172027] Flags: nZCv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment none
[    0.179473] Control: 00c5387d  Table: 80004000  DAC: 00000051
[    0.185394] Process swapper/0 (pid: 0, stack limit = 0x(ptrval))
[    0.191558] Stack: (0xc0843ea0 to 0xc0844000)
[    0.196075] 3ea0: c7402000 00000000 c00de694 00000000 c0669624 c0122f4c 00000000 c0843ee8
[    0.204528] 3ec0: c04b9c20 c7825600 c00de890 00000000 00000004 c0154c00 c7825600 00000000
[    0.212951] 3ee0: 00000000 c0121b88 c05a91bc 00000002 c7825600 00000000 00000000 c0669624
[    0.221405] 3f00: c0868700 c0141e2c c7825600 c0141eb4 00000000 c0970728 c0842000 c0141f00
[    0.229858] 3f20: 00000000 c064b73c c00de8a0 c014031c c0847388 00000000 00000000 c063b070
[    0.238281] 3f40: c0847388 c064f8f8 00000004 c0847388 c0847390 00000000 00000000 00000001
[    0.246734] 3f60: c0666a38 c024af58 00000000 9ac7f44c 00000000 c0847360 00000021 c0847080
[    0.255187] 3f80: c0868700 c064f590 0000002c 00000024 00000000 00000000 c086874c c086874c
[    0.263610] 3fa0: ffffffff c063ac94 ffffffff ffffffff 00000000 c063a584 00000000 c7ffcd80
[    0.272064] 3fc0: 00000000 c0666a38 9ac2f64c 00000000 00000000 c063a330 00000051 00c0387d
[    0.280487] 3fe0: ffffffff 82009000 4107b362 00c5387d 00000000 00000000 00000000 00000000
[    0.288970] [<c023701c>] (lockref_get) from [<c0122f4c>] (mount_nodev+0x6c/0x94)
[    0.296600] [<c0122f4c>] (mount_nodev) from [<c0154c00>] (legacy_get_tree+0x28/0x54)
[    0.304595] [<c0154c00>] (legacy_get_tree) from [<c0121b88>] (vfs_get_tree+0x24/0xf8)
[    0.312713] [<c0121b88>] (vfs_get_tree) from [<c0141e2c>] (fc_mount+0xc/0x30)
[    0.320068] [<c0141e2c>] (fc_mount) from [<c0141eb4>] (vfs_kern_mount.part.3+0x64/0x80)
[    0.328338] [<c0141eb4>] (vfs_kern_mount.part.3) from [<c0141f00>] (kern_mount+0x1c/0x34)
[    0.336791] [<c0141f00>] (kern_mount) from [<c064b73c>] (shmem_init+0x64/0xb4)
[    0.344268] [<c064b73c>] (shmem_init) from [<c063b070>] (init_rootfs+0x44/0x88)
[    0.351837] [<c063b070>] (init_rootfs) from [<c064f8f8>] (mnt_init+0x104/0x268)
[    0.359374] [<c064f8f8>] (mnt_init) from [<c064f590>] (vfs_caches_init+0x6c/0x88)
[    0.367095] [<c064f590>] (vfs_caches_init) from [<c063ac94>] (start_kernel+0x368/0x424)
[    0.375366] [<c063ac94>] (start_kernel) from [<00000000>] (0x0)
[    0.381469] Code: e3a0e000 e1a04001 e28c5001 f5d0f000 (e1b06f9f) 
[    0.387786] ---[ end trace 57f1c61709eb3312 ]---
[    0.392547] Kernel panic - not syncing: Attempted to kill the idle task!
[    0.399475] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]---

It seems lockref_get+0x2c is __cmpxchg64:

c0236ff0 <lockref_get>:
[...]
	__asm__ __volatile__(
c023701c:	e1b06f9f 	ldrexd	r6, [r0]
c0237020:	e1360002 	teq	r6, r2
c0237024:	01370003 	teqeq	r7, r3
c0237028:	1a000002 	bne	c0237038 <lockref_get+0x48>
c023702c:	e1a01f94 	strexd	r1, r4, [r0]
c0237030:	e3310000 	teq	r1, #0
c0237034:	1afffff8 	bne	c023701c <lockref_get+0x2c>

and ldrexd is not supported on ARMv6.

A.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* omap2plus_defconfig broken on ARMv6
@ 2019-05-24 22:07 ` Aaro Koskinen
  0 siblings, 0 replies; 8+ messages in thread
From: Aaro Koskinen @ 2019-05-24 22:07 UTC (permalink / raw)
  To: linux-omap, linux-arm-kernel, Russell King, Tony Lindgren

Hi,

Noticed today that booting omap2plus_defconfig on N8x0 crashes
early. Disabling CONFIG_SMP makes it work.

Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.2.0-rc1-n8x0-los_925980+-00233-g0a72ef899014 (aaro@amd-fx-6350) (gcc version 8.3.0 (GCC)) #2 SMP Fri May 24 23:55:08 EEST 2019
[    0.000000] CPU: ARMv6-compatible processor [4107b362] revision 2 (ARMv6TEJ), cr=00c5387d
[    0.000000] CPU: VIPT aliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Nokia N810
[    0.000000] printk: bootconsole [earlycon0] enabled
[    0.000000] Memory policy: Data cache writeback
[    0.000000] CPU: All CPU(s) started in SVC mode.
[    0.000000] OMAP2420
[    0.000000] percpu: Embedded 16 pages/cpu s33996 r8192 d23348 u65536
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32512
[    0.000000] Kernel command line: console=ttyO2,115200 earlyprintk
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Memory: 119992K/131072K available (4717K kernel code, 153K rwdata, 1488K rodata, 2080K init, 1128K bss, 11080K reserved, 0K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] IRQ: Found an INTC at 0x(ptrval) (revision 2.0) with 96 interrupts
[    0.000000] random: get_random_bytes called from start_kernel+0x250/0x424 with crng_init=0
[    0.000000] Clocking rate (Crystal/DPLL/MPU): 19.2/658/329 MHz
[    0.000000] OMAP clockevent source: timer1 at 32768 Hz
[    0.000000] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
[    0.000030] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 65535999984741ns
[    0.008605] OMAP clocksource: 32k_counter at 32768 Hz
[    0.014007] hw-breakpoint: CPUID feature registers not supported. Assuming v6 debug is present.
[    0.023468] Console: colour dummy device 80x30
[    0.028137] Calibrating delay loop... 326.86 BogoMIPS (lpj=1634304)
[    0.088439] pid_max: default: 32768 minimum: 301
[    0.093658] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.100494] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.108276] Internal error: Oops - undefined instruction: 0 [#1] SMP ARM
[    0.115203] Modules linked in:
[    0.118377] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.2.0-rc1-n8x0-los_925980+-00233-g0a72ef899014 #2
[    0.128021] Hardware name: Generic OMAP2420 (Flattened Device Tree)
[    0.134521] PC is at lockref_get+0x2c/0xd0
[    0.138732] LR is at 0x0
[    0.141357] pc : [<c023701c>]    lr : [<00000000>]    psr: 60000053
[    0.147796] sp : c0843ea0  ip : 00000001  fp : c0666a38
[    0.153198] r10: 00000001  r9 : c0868700  r8 : c0669624
[    0.158569] r7 : 00000000  r6 : c00de694  r5 : 00000002  r4 : 00010001
[    0.165283] r3 : 00000001  r2 : 00010001  r1 : 00010001  r0 : c7402050
[    0.172027] Flags: nZCv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment none
[    0.179473] Control: 00c5387d  Table: 80004000  DAC: 00000051
[    0.185394] Process swapper/0 (pid: 0, stack limit = 0x(ptrval))
[    0.191558] Stack: (0xc0843ea0 to 0xc0844000)
[    0.196075] 3ea0: c7402000 00000000 c00de694 00000000 c0669624 c0122f4c 00000000 c0843ee8
[    0.204528] 3ec0: c04b9c20 c7825600 c00de890 00000000 00000004 c0154c00 c7825600 00000000
[    0.212951] 3ee0: 00000000 c0121b88 c05a91bc 00000002 c7825600 00000000 00000000 c0669624
[    0.221405] 3f00: c0868700 c0141e2c c7825600 c0141eb4 00000000 c0970728 c0842000 c0141f00
[    0.229858] 3f20: 00000000 c064b73c c00de8a0 c014031c c0847388 00000000 00000000 c063b070
[    0.238281] 3f40: c0847388 c064f8f8 00000004 c0847388 c0847390 00000000 00000000 00000001
[    0.246734] 3f60: c0666a38 c024af58 00000000 9ac7f44c 00000000 c0847360 00000021 c0847080
[    0.255187] 3f80: c0868700 c064f590 0000002c 00000024 00000000 00000000 c086874c c086874c
[    0.263610] 3fa0: ffffffff c063ac94 ffffffff ffffffff 00000000 c063a584 00000000 c7ffcd80
[    0.272064] 3fc0: 00000000 c0666a38 9ac2f64c 00000000 00000000 c063a330 00000051 00c0387d
[    0.280487] 3fe0: ffffffff 82009000 4107b362 00c5387d 00000000 00000000 00000000 00000000
[    0.288970] [<c023701c>] (lockref_get) from [<c0122f4c>] (mount_nodev+0x6c/0x94)
[    0.296600] [<c0122f4c>] (mount_nodev) from [<c0154c00>] (legacy_get_tree+0x28/0x54)
[    0.304595] [<c0154c00>] (legacy_get_tree) from [<c0121b88>] (vfs_get_tree+0x24/0xf8)
[    0.312713] [<c0121b88>] (vfs_get_tree) from [<c0141e2c>] (fc_mount+0xc/0x30)
[    0.320068] [<c0141e2c>] (fc_mount) from [<c0141eb4>] (vfs_kern_mount.part.3+0x64/0x80)
[    0.328338] [<c0141eb4>] (vfs_kern_mount.part.3) from [<c0141f00>] (kern_mount+0x1c/0x34)
[    0.336791] [<c0141f00>] (kern_mount) from [<c064b73c>] (shmem_init+0x64/0xb4)
[    0.344268] [<c064b73c>] (shmem_init) from [<c063b070>] (init_rootfs+0x44/0x88)
[    0.351837] [<c063b070>] (init_rootfs) from [<c064f8f8>] (mnt_init+0x104/0x268)
[    0.359374] [<c064f8f8>] (mnt_init) from [<c064f590>] (vfs_caches_init+0x6c/0x88)
[    0.367095] [<c064f590>] (vfs_caches_init) from [<c063ac94>] (start_kernel+0x368/0x424)
[    0.375366] [<c063ac94>] (start_kernel) from [<00000000>] (0x0)
[    0.381469] Code: e3a0e000 e1a04001 e28c5001 f5d0f000 (e1b06f9f) 
[    0.387786] ---[ end trace 57f1c61709eb3312 ]---
[    0.392547] Kernel panic - not syncing: Attempted to kill the idle task!
[    0.399475] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]---

It seems lockref_get+0x2c is __cmpxchg64:

c0236ff0 <lockref_get>:
[...]
	__asm__ __volatile__(
c023701c:	e1b06f9f 	ldrexd	r6, [r0]
c0237020:	e1360002 	teq	r6, r2
c0237024:	01370003 	teqeq	r7, r3
c0237028:	1a000002 	bne	c0237038 <lockref_get+0x48>
c023702c:	e1a01f94 	strexd	r1, r4, [r0]
c0237030:	e3310000 	teq	r1, #0
c0237034:	1afffff8 	bne	c023701c <lockref_get+0x2c>

and ldrexd is not supported on ARMv6.

A.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: omap2plus_defconfig broken on ARMv6
  2019-05-24 22:07 ` Aaro Koskinen
@ 2019-05-27  5:57   ` Tony Lindgren
  -1 siblings, 0 replies; 8+ messages in thread
From: Tony Lindgren @ 2019-05-27  5:57 UTC (permalink / raw)
  To: Aaro Koskinen; +Cc: linux-omap, Russell King, linux-arm-kernel

Hi,

* Aaro Koskinen <aaro.koskinen@iki.fi> [190524 22:07]:
> Hi,
> 
> Noticed today that booting omap2plus_defconfig on N8x0 crashes
> early. Disabling CONFIG_SMP makes it work.

OK. It sure used to work when I last tested but that's been quite
a while now. Any ideas which commit caused the ldrexd regression?

Regards,

Tony

> Uncompressing Linux... done, booting the kernel.
> [    0.000000] Booting Linux on physical CPU 0x0
> [    0.000000] Linux version 5.2.0-rc1-n8x0-los_925980+-00233-g0a72ef899014 (aaro@amd-fx-6350) (gcc version 8.3.0 (GCC)) #2 SMP Fri May 24 23:55:08 EEST 2019
> [    0.000000] CPU: ARMv6-compatible processor [4107b362] revision 2 (ARMv6TEJ), cr=00c5387d
> [    0.000000] CPU: VIPT aliasing data cache, VIPT aliasing instruction cache
> [    0.000000] OF: fdt: Machine model: Nokia N810
> [    0.000000] printk: bootconsole [earlycon0] enabled
> [    0.000000] Memory policy: Data cache writeback
> [    0.000000] CPU: All CPU(s) started in SVC mode.
> [    0.000000] OMAP2420
> [    0.000000] percpu: Embedded 16 pages/cpu s33996 r8192 d23348 u65536
> [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32512
> [    0.000000] Kernel command line: console=ttyO2,115200 earlyprintk
> [    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
> [    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
> [    0.000000] Memory: 119992K/131072K available (4717K kernel code, 153K rwdata, 1488K rodata, 2080K init, 1128K bss, 11080K reserved, 0K cma-reserved, 0K highmem)
> [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
> [    0.000000] rcu: Hierarchical RCU implementation.
> [    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
> [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
> [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
> [    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
> [    0.000000] IRQ: Found an INTC at 0x(ptrval) (revision 2.0) with 96 interrupts
> [    0.000000] random: get_random_bytes called from start_kernel+0x250/0x424 with crng_init=0
> [    0.000000] Clocking rate (Crystal/DPLL/MPU): 19.2/658/329 MHz
> [    0.000000] OMAP clockevent source: timer1 at 32768 Hz
> [    0.000000] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
> [    0.000030] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 65535999984741ns
> [    0.008605] OMAP clocksource: 32k_counter at 32768 Hz
> [    0.014007] hw-breakpoint: CPUID feature registers not supported. Assuming v6 debug is present.
> [    0.023468] Console: colour dummy device 80x30
> [    0.028137] Calibrating delay loop... 326.86 BogoMIPS (lpj=1634304)
> [    0.088439] pid_max: default: 32768 minimum: 301
> [    0.093658] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
> [    0.100494] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
> [    0.108276] Internal error: Oops - undefined instruction: 0 [#1] SMP ARM
> [    0.115203] Modules linked in:
> [    0.118377] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.2.0-rc1-n8x0-los_925980+-00233-g0a72ef899014 #2
> [    0.128021] Hardware name: Generic OMAP2420 (Flattened Device Tree)
> [    0.134521] PC is at lockref_get+0x2c/0xd0
> [    0.138732] LR is at 0x0
> [    0.141357] pc : [<c023701c>]    lr : [<00000000>]    psr: 60000053
> [    0.147796] sp : c0843ea0  ip : 00000001  fp : c0666a38
> [    0.153198] r10: 00000001  r9 : c0868700  r8 : c0669624
> [    0.158569] r7 : 00000000  r6 : c00de694  r5 : 00000002  r4 : 00010001
> [    0.165283] r3 : 00000001  r2 : 00010001  r1 : 00010001  r0 : c7402050
> [    0.172027] Flags: nZCv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment none
> [    0.179473] Control: 00c5387d  Table: 80004000  DAC: 00000051
> [    0.185394] Process swapper/0 (pid: 0, stack limit = 0x(ptrval))
> [    0.191558] Stack: (0xc0843ea0 to 0xc0844000)
> [    0.196075] 3ea0: c7402000 00000000 c00de694 00000000 c0669624 c0122f4c 00000000 c0843ee8
> [    0.204528] 3ec0: c04b9c20 c7825600 c00de890 00000000 00000004 c0154c00 c7825600 00000000
> [    0.212951] 3ee0: 00000000 c0121b88 c05a91bc 00000002 c7825600 00000000 00000000 c0669624
> [    0.221405] 3f00: c0868700 c0141e2c c7825600 c0141eb4 00000000 c0970728 c0842000 c0141f00
> [    0.229858] 3f20: 00000000 c064b73c c00de8a0 c014031c c0847388 00000000 00000000 c063b070
> [    0.238281] 3f40: c0847388 c064f8f8 00000004 c0847388 c0847390 00000000 00000000 00000001
> [    0.246734] 3f60: c0666a38 c024af58 00000000 9ac7f44c 00000000 c0847360 00000021 c0847080
> [    0.255187] 3f80: c0868700 c064f590 0000002c 00000024 00000000 00000000 c086874c c086874c
> [    0.263610] 3fa0: ffffffff c063ac94 ffffffff ffffffff 00000000 c063a584 00000000 c7ffcd80
> [    0.272064] 3fc0: 00000000 c0666a38 9ac2f64c 00000000 00000000 c063a330 00000051 00c0387d
> [    0.280487] 3fe0: ffffffff 82009000 4107b362 00c5387d 00000000 00000000 00000000 00000000
> [    0.288970] [<c023701c>] (lockref_get) from [<c0122f4c>] (mount_nodev+0x6c/0x94)
> [    0.296600] [<c0122f4c>] (mount_nodev) from [<c0154c00>] (legacy_get_tree+0x28/0x54)
> [    0.304595] [<c0154c00>] (legacy_get_tree) from [<c0121b88>] (vfs_get_tree+0x24/0xf8)
> [    0.312713] [<c0121b88>] (vfs_get_tree) from [<c0141e2c>] (fc_mount+0xc/0x30)
> [    0.320068] [<c0141e2c>] (fc_mount) from [<c0141eb4>] (vfs_kern_mount.part.3+0x64/0x80)
> [    0.328338] [<c0141eb4>] (vfs_kern_mount.part.3) from [<c0141f00>] (kern_mount+0x1c/0x34)
> [    0.336791] [<c0141f00>] (kern_mount) from [<c064b73c>] (shmem_init+0x64/0xb4)
> [    0.344268] [<c064b73c>] (shmem_init) from [<c063b070>] (init_rootfs+0x44/0x88)
> [    0.351837] [<c063b070>] (init_rootfs) from [<c064f8f8>] (mnt_init+0x104/0x268)
> [    0.359374] [<c064f8f8>] (mnt_init) from [<c064f590>] (vfs_caches_init+0x6c/0x88)
> [    0.367095] [<c064f590>] (vfs_caches_init) from [<c063ac94>] (start_kernel+0x368/0x424)
> [    0.375366] [<c063ac94>] (start_kernel) from [<00000000>] (0x0)
> [    0.381469] Code: e3a0e000 e1a04001 e28c5001 f5d0f000 (e1b06f9f) 
> [    0.387786] ---[ end trace 57f1c61709eb3312 ]---
> [    0.392547] Kernel panic - not syncing: Attempted to kill the idle task!
> [    0.399475] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]---
> 
> It seems lockref_get+0x2c is __cmpxchg64:
> 
> c0236ff0 <lockref_get>:
> [...]
> 	__asm__ __volatile__(
> c023701c:	e1b06f9f 	ldrexd	r6, [r0]
> c0237020:	e1360002 	teq	r6, r2
> c0237024:	01370003 	teqeq	r7, r3
> c0237028:	1a000002 	bne	c0237038 <lockref_get+0x48>
> c023702c:	e1a01f94 	strexd	r1, r4, [r0]
> c0237030:	e3310000 	teq	r1, #0
> c0237034:	1afffff8 	bne	c023701c <lockref_get+0x2c>
> 
> and ldrexd is not supported on ARMv6.
> 
> A.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: omap2plus_defconfig broken on ARMv6
@ 2019-05-27  5:57   ` Tony Lindgren
  0 siblings, 0 replies; 8+ messages in thread
From: Tony Lindgren @ 2019-05-27  5:57 UTC (permalink / raw)
  To: Aaro Koskinen; +Cc: linux-omap, Russell King, linux-arm-kernel

Hi,

* Aaro Koskinen <aaro.koskinen@iki.fi> [190524 22:07]:
> Hi,
> 
> Noticed today that booting omap2plus_defconfig on N8x0 crashes
> early. Disabling CONFIG_SMP makes it work.

OK. It sure used to work when I last tested but that's been quite
a while now. Any ideas which commit caused the ldrexd regression?

Regards,

Tony

> Uncompressing Linux... done, booting the kernel.
> [    0.000000] Booting Linux on physical CPU 0x0
> [    0.000000] Linux version 5.2.0-rc1-n8x0-los_925980+-00233-g0a72ef899014 (aaro@amd-fx-6350) (gcc version 8.3.0 (GCC)) #2 SMP Fri May 24 23:55:08 EEST 2019
> [    0.000000] CPU: ARMv6-compatible processor [4107b362] revision 2 (ARMv6TEJ), cr=00c5387d
> [    0.000000] CPU: VIPT aliasing data cache, VIPT aliasing instruction cache
> [    0.000000] OF: fdt: Machine model: Nokia N810
> [    0.000000] printk: bootconsole [earlycon0] enabled
> [    0.000000] Memory policy: Data cache writeback
> [    0.000000] CPU: All CPU(s) started in SVC mode.
> [    0.000000] OMAP2420
> [    0.000000] percpu: Embedded 16 pages/cpu s33996 r8192 d23348 u65536
> [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32512
> [    0.000000] Kernel command line: console=ttyO2,115200 earlyprintk
> [    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
> [    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
> [    0.000000] Memory: 119992K/131072K available (4717K kernel code, 153K rwdata, 1488K rodata, 2080K init, 1128K bss, 11080K reserved, 0K cma-reserved, 0K highmem)
> [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
> [    0.000000] rcu: Hierarchical RCU implementation.
> [    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
> [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
> [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
> [    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
> [    0.000000] IRQ: Found an INTC at 0x(ptrval) (revision 2.0) with 96 interrupts
> [    0.000000] random: get_random_bytes called from start_kernel+0x250/0x424 with crng_init=0
> [    0.000000] Clocking rate (Crystal/DPLL/MPU): 19.2/658/329 MHz
> [    0.000000] OMAP clockevent source: timer1 at 32768 Hz
> [    0.000000] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
> [    0.000030] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 65535999984741ns
> [    0.008605] OMAP clocksource: 32k_counter at 32768 Hz
> [    0.014007] hw-breakpoint: CPUID feature registers not supported. Assuming v6 debug is present.
> [    0.023468] Console: colour dummy device 80x30
> [    0.028137] Calibrating delay loop... 326.86 BogoMIPS (lpj=1634304)
> [    0.088439] pid_max: default: 32768 minimum: 301
> [    0.093658] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
> [    0.100494] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
> [    0.108276] Internal error: Oops - undefined instruction: 0 [#1] SMP ARM
> [    0.115203] Modules linked in:
> [    0.118377] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.2.0-rc1-n8x0-los_925980+-00233-g0a72ef899014 #2
> [    0.128021] Hardware name: Generic OMAP2420 (Flattened Device Tree)
> [    0.134521] PC is at lockref_get+0x2c/0xd0
> [    0.138732] LR is at 0x0
> [    0.141357] pc : [<c023701c>]    lr : [<00000000>]    psr: 60000053
> [    0.147796] sp : c0843ea0  ip : 00000001  fp : c0666a38
> [    0.153198] r10: 00000001  r9 : c0868700  r8 : c0669624
> [    0.158569] r7 : 00000000  r6 : c00de694  r5 : 00000002  r4 : 00010001
> [    0.165283] r3 : 00000001  r2 : 00010001  r1 : 00010001  r0 : c7402050
> [    0.172027] Flags: nZCv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment none
> [    0.179473] Control: 00c5387d  Table: 80004000  DAC: 00000051
> [    0.185394] Process swapper/0 (pid: 0, stack limit = 0x(ptrval))
> [    0.191558] Stack: (0xc0843ea0 to 0xc0844000)
> [    0.196075] 3ea0: c7402000 00000000 c00de694 00000000 c0669624 c0122f4c 00000000 c0843ee8
> [    0.204528] 3ec0: c04b9c20 c7825600 c00de890 00000000 00000004 c0154c00 c7825600 00000000
> [    0.212951] 3ee0: 00000000 c0121b88 c05a91bc 00000002 c7825600 00000000 00000000 c0669624
> [    0.221405] 3f00: c0868700 c0141e2c c7825600 c0141eb4 00000000 c0970728 c0842000 c0141f00
> [    0.229858] 3f20: 00000000 c064b73c c00de8a0 c014031c c0847388 00000000 00000000 c063b070
> [    0.238281] 3f40: c0847388 c064f8f8 00000004 c0847388 c0847390 00000000 00000000 00000001
> [    0.246734] 3f60: c0666a38 c024af58 00000000 9ac7f44c 00000000 c0847360 00000021 c0847080
> [    0.255187] 3f80: c0868700 c064f590 0000002c 00000024 00000000 00000000 c086874c c086874c
> [    0.263610] 3fa0: ffffffff c063ac94 ffffffff ffffffff 00000000 c063a584 00000000 c7ffcd80
> [    0.272064] 3fc0: 00000000 c0666a38 9ac2f64c 00000000 00000000 c063a330 00000051 00c0387d
> [    0.280487] 3fe0: ffffffff 82009000 4107b362 00c5387d 00000000 00000000 00000000 00000000
> [    0.288970] [<c023701c>] (lockref_get) from [<c0122f4c>] (mount_nodev+0x6c/0x94)
> [    0.296600] [<c0122f4c>] (mount_nodev) from [<c0154c00>] (legacy_get_tree+0x28/0x54)
> [    0.304595] [<c0154c00>] (legacy_get_tree) from [<c0121b88>] (vfs_get_tree+0x24/0xf8)
> [    0.312713] [<c0121b88>] (vfs_get_tree) from [<c0141e2c>] (fc_mount+0xc/0x30)
> [    0.320068] [<c0141e2c>] (fc_mount) from [<c0141eb4>] (vfs_kern_mount.part.3+0x64/0x80)
> [    0.328338] [<c0141eb4>] (vfs_kern_mount.part.3) from [<c0141f00>] (kern_mount+0x1c/0x34)
> [    0.336791] [<c0141f00>] (kern_mount) from [<c064b73c>] (shmem_init+0x64/0xb4)
> [    0.344268] [<c064b73c>] (shmem_init) from [<c063b070>] (init_rootfs+0x44/0x88)
> [    0.351837] [<c063b070>] (init_rootfs) from [<c064f8f8>] (mnt_init+0x104/0x268)
> [    0.359374] [<c064f8f8>] (mnt_init) from [<c064f590>] (vfs_caches_init+0x6c/0x88)
> [    0.367095] [<c064f590>] (vfs_caches_init) from [<c063ac94>] (start_kernel+0x368/0x424)
> [    0.375366] [<c063ac94>] (start_kernel) from [<00000000>] (0x0)
> [    0.381469] Code: e3a0e000 e1a04001 e28c5001 f5d0f000 (e1b06f9f) 
> [    0.387786] ---[ end trace 57f1c61709eb3312 ]---
> [    0.392547] Kernel panic - not syncing: Attempted to kill the idle task!
> [    0.399475] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]---
> 
> It seems lockref_get+0x2c is __cmpxchg64:
> 
> c0236ff0 <lockref_get>:
> [...]
> 	__asm__ __volatile__(
> c023701c:	e1b06f9f 	ldrexd	r6, [r0]
> c0237020:	e1360002 	teq	r6, r2
> c0237024:	01370003 	teqeq	r7, r3
> c0237028:	1a000002 	bne	c0237038 <lockref_get+0x48>
> c023702c:	e1a01f94 	strexd	r1, r4, [r0]
> c0237030:	e3310000 	teq	r1, #0
> c0237034:	1afffff8 	bne	c023701c <lockref_get+0x2c>
> 
> and ldrexd is not supported on ARMv6.
> 
> A.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: omap2plus_defconfig broken on ARMv6
  2019-05-27  5:57   ` Tony Lindgren
@ 2019-05-27 20:41     ` Aaro Koskinen
  -1 siblings, 0 replies; 8+ messages in thread
From: Aaro Koskinen @ 2019-05-27 20:41 UTC (permalink / raw)
  To: Tony Lindgren; +Cc: linux-omap, Russell King, linux-arm-kernel

Hi,

On Sun, May 26, 2019 at 10:57:46PM -0700, Tony Lindgren wrote:
> * Aaro Koskinen <aaro.koskinen@iki.fi> [190524 22:07]:
> > Noticed today that booting omap2plus_defconfig on N8x0 crashes
> > early. Disabling CONFIG_SMP makes it work.
> 
> OK. It sure used to work when I last tested but that's been quite
> a while now. Any ideas which commit caused the ldrexd regression?

No idea, I tried even 3.16 and even that seems to have the same issue
if multi v6/v7 and SMP is selected.

A.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: omap2plus_defconfig broken on ARMv6
@ 2019-05-27 20:41     ` Aaro Koskinen
  0 siblings, 0 replies; 8+ messages in thread
From: Aaro Koskinen @ 2019-05-27 20:41 UTC (permalink / raw)
  To: Tony Lindgren; +Cc: linux-omap, Russell King, linux-arm-kernel

Hi,

On Sun, May 26, 2019 at 10:57:46PM -0700, Tony Lindgren wrote:
> * Aaro Koskinen <aaro.koskinen@iki.fi> [190524 22:07]:
> > Noticed today that booting omap2plus_defconfig on N8x0 crashes
> > early. Disabling CONFIG_SMP makes it work.
> 
> OK. It sure used to work when I last tested but that's been quite
> a while now. Any ideas which commit caused the ldrexd regression?

No idea, I tried even 3.16 and even that seems to have the same issue
if multi v6/v7 and SMP is selected.

A.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: omap2plus_defconfig broken on ARMv6
  2019-05-27 20:41     ` Aaro Koskinen
@ 2019-05-28  5:03       ` H. Nikolaus Schaller
  -1 siblings, 0 replies; 8+ messages in thread
From: H. Nikolaus Schaller @ 2019-05-28  5:03 UTC (permalink / raw)
  To: Aaro Koskinen; +Cc: Tony Lindgren, linux-omap, Russell King, linux-arm-kernel


> Am 27.05.2019 um 22:41 schrieb Aaro Koskinen <aaro.koskinen@iki.fi>:
> 
> Hi,
> 
> On Sun, May 26, 2019 at 10:57:46PM -0700, Tony Lindgren wrote:
>> * Aaro Koskinen <aaro.koskinen@iki.fi> [190524 22:07]:
>>> Noticed today that booting omap2plus_defconfig on N8x0 crashes
>>> early. Disabling CONFIG_SMP makes it work.
>> 
>> OK. It sure used to work when I last tested but that's been quite
>> a while now. Any ideas which commit caused the ldrexd regression?
> 
> No idea, I tried even 3.16 and even that seems to have the same issue
> if multi v6/v7 and SMP is selected.

Could it be an unknown compiler issue?

I just had the effect that v5.2-rc1 started to try to build gcc-plugins
(something I had never heard of before) because some Kconfig defaults
were changed. And my cross-compiler setup is not capable of doing that.

I have grepped a little into the code and the offending assembler statements
seem to come from __cmpxchg64() which is indeed very old [1]. But the question
may be why this 64 bit code is compiled for a 32 bit ARMv6.

Other code seems to be guarded by #ifndef CONFIG_CPU_V6	/* min ARCH >= ARMv6K */

[1]: https://elixir.bootlin.com/linux/v5.2-rc2/source/arch/arm/include/asm/cmpxchg.h#L244
     https://elixir.bootlin.com/linux/v3.16.68/source/arch/arm/include/asm/cmpxchg.h#L230

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: omap2plus_defconfig broken on ARMv6
@ 2019-05-28  5:03       ` H. Nikolaus Schaller
  0 siblings, 0 replies; 8+ messages in thread
From: H. Nikolaus Schaller @ 2019-05-28  5:03 UTC (permalink / raw)
  To: Aaro Koskinen; +Cc: Tony Lindgren, linux-omap, Russell King, linux-arm-kernel


> Am 27.05.2019 um 22:41 schrieb Aaro Koskinen <aaro.koskinen@iki.fi>:
> 
> Hi,
> 
> On Sun, May 26, 2019 at 10:57:46PM -0700, Tony Lindgren wrote:
>> * Aaro Koskinen <aaro.koskinen@iki.fi> [190524 22:07]:
>>> Noticed today that booting omap2plus_defconfig on N8x0 crashes
>>> early. Disabling CONFIG_SMP makes it work.
>> 
>> OK. It sure used to work when I last tested but that's been quite
>> a while now. Any ideas which commit caused the ldrexd regression?
> 
> No idea, I tried even 3.16 and even that seems to have the same issue
> if multi v6/v7 and SMP is selected.

Could it be an unknown compiler issue?

I just had the effect that v5.2-rc1 started to try to build gcc-plugins
(something I had never heard of before) because some Kconfig defaults
were changed. And my cross-compiler setup is not capable of doing that.

I have grepped a little into the code and the offending assembler statements
seem to come from __cmpxchg64() which is indeed very old [1]. But the question
may be why this 64 bit code is compiled for a 32 bit ARMv6.

Other code seems to be guarded by #ifndef CONFIG_CPU_V6	/* min ARCH >= ARMv6K */

[1]: https://elixir.bootlin.com/linux/v5.2-rc2/source/arch/arm/include/asm/cmpxchg.h#L244
     https://elixir.bootlin.com/linux/v3.16.68/source/arch/arm/include/asm/cmpxchg.h#L230
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-05-28  5:04 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-24 22:07 omap2plus_defconfig broken on ARMv6 Aaro Koskinen
2019-05-24 22:07 ` Aaro Koskinen
2019-05-27  5:57 ` Tony Lindgren
2019-05-27  5:57   ` Tony Lindgren
2019-05-27 20:41   ` Aaro Koskinen
2019-05-27 20:41     ` Aaro Koskinen
2019-05-28  5:03     ` H. Nikolaus Schaller
2019-05-28  5:03       ` H. Nikolaus Schaller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.