[PATCH 2/2] arm64: dts: Add PMU node for APM X-Gene Storm SOC

Ming Lei ming.lei at canonical.com
Mon Jun 23 19:47:41 PDT 2014


Hi Vinayak,

On Thu, Mar 20, 2014 at 5:47 PM, Vinayak Kale <vkale at apm.com> wrote:
> This patch adds the PMU device tree node for APM X-Gene Storm SOC.
>
> Please note that this patch has dependancy on a GIC driver patch [1] which is
> yet to be approved by maintainers.
>
> [1]- https://lkml.org/lkml/2014/2/27/605
> (irqchip:gic: change access of gicc_ctrl register to read modify write)
>
> Signed-off-by: Vinayak Kale <vkale at apm.com>
> ---
>  arch/arm64/boot/dts/apm-storm.dtsi |    5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/apm-storm.dtsi b/arch/arm64/boot/dts/apm-storm.dtsi
> index d37d736..5edb16a 100644
> --- a/arch/arm64/boot/dts/apm-storm.dtsi
> +++ b/arch/arm64/boot/dts/apm-storm.dtsi
> @@ -97,6 +97,11 @@
>                 clock-frequency = <50000000>;
>         };
>
> +       pmu {
> +               compatible = "apm,potenza-pmu", "arm,armv8-pmuv3";
> +               interrupts = <1 12 0xff04>;
> +       };
> +
>         soc {
>                 compatible = "simple-bus";
>                 #address-cells = <2>;
> --
> 1.7.9.5

No matter if Feng Kan's gic patch is applied or not, perf(PMU)
still can't work well with your patch, and the failure[1] will be
triggered when 'perf top' is started.

The failure happened during the 1st pmu overflow interrupt.

I test several mustang boards, and all has the problem with
upstream kernel.

Could you take a look the issue?

[1], perf segmentation log
[   98.862963] Bad mode in FIQ handler detected, code 0x92000007
[   98.868688] CPU: 2 PID: 3979 Comm: perf Not tainted 3.15.0-next-20140610+ #26
[   98.875787] task: ffffffc3eec4c080 ti: ffffffc3ea27c000 task.ti:
ffffffc3ea27c000
[   98.883232] PC is at 0x7fb177f3ec
[   98.886527] LR is at 0x45f280
[   98.889478] pc : [<0000007fb177f3ec>] lr : [<000000000045f280>]
pstate: 80000000
[   98.896834] sp : ffffffc3ea27fff0
[   98.900130] x29: 0000007ff2519ba0 x28: 0000000000521000
[   98.905434] x27: 0000000026dced90 x26: 0000000000000000
[   98.910738] x25: 0000000026dcd830 x24: 0000007ff251ada0
[   98.916041] x23: 0000000000000003 x22: 000000000000275a
[   98.921344] x21: 0000000026dcd390 x20: 0000000000011f0d
[   98.926648] x19: 0000000000011f0d x18: 0000007ff2519910
[   98.931952] x17: 0000007fb177f3a8 x16: 0000000000519000
[   98.937255] x15: 0000007fb11ce5a0 x14: 6632383931646363
[   98.942560] x13: 0000000001000000 x12: 0000000000000004
[   98.947865] x11: 0000000000000002 x10: 0101010101010101
[   98.953169] x9 : 0000000007cb19c0 x8 : 7f7f7f7f7f7f7f7f
[   98.958474] x7 : 0000007f96a1cc33 x6 : 3a043a1c11766963
[   98.963779] x5 : ffffffc0009b2648 x4 : 000000000000275a
[   98.969083] x3 : 000000000011f0d0 x2 : 0000007ff2519c90
[   98.974387] x1 : 000000000000275a x0 : 0000000026dced90
[   98.979692]
[   98.981177] Bad mode in Synchronous Abort handler detected, code 0x8600000f
[   98.988103] CPU: 2 PID: 3979 Comm: perf Not tainted 3.15.0-next-20140610+ #26
[   98.995200] task: ffffffc3eec4c080 ti: ffffffc3ea27c000 task.ti:
ffffffc3ea27c000
[   99.002642] PC is at 0x45f280
[   99.005592] LR is at 0x45f280
[   99.008542] pc : [<000000000045f280>] lr : [<000000000045f280>]
pstate: 600003c5
[   99.015897] sp : ffffffc3ea27fed0
[   99.019192] x29: 0000007ff2519ba0 x28: 0000000000521000
[   99.024495] x27: 0000000026dced90 x26: 0000000000000000
[   99.029799] x25: 0000000026dcd830 x24: 0000007ff251ada0
[   99.035103] x23: 0000000080000000 x22: 0000007fb177f3ec
[   99.040407] x21: ffffffc3ea27fff0 x20: 0000000000011f0d
[   99.045711] x19: 0000000000011f0d x18: 0000007ff2519910
[   99.051016] x17: 0000007fb177f3a8 x16: 0000000000519000
[   99.056320] x15: 0000007fb11ce5a0 x14: 3030303030303038
[   99.061623] x13: 203a657461747370 x12: 205d3e3038326635
[   99.066927] x11: 0000000000000002 x10: 0000000000000420
[   99.072232] x9 : 0000000000000421 x8 : 0000000000000006
[   99.077537] x7 : ffffffc0000812cc x6 : ffffffc3ea27fea0
[   99.082842] x5 : 00000000000003c0 x4 : 0000000000000001
[   99.088147] x3 : ffffffc3ea27fcf0 x2 : 00000000dead4ead
[   99.093452] x1 : 000000000000005e x0 : 0000000000000000
[   99.098757]
[   99.100240] Internal error: Oops - bad mode: 0 [#1] SMP
[   99.105436] Modules linked in:
[   99.108483] CPU: 2 PID: 3979 Comm: perf Not tainted 3.15.0-next-20140610+ #26
[   99.115581] task: ffffffc3eec4c080 ti: ffffffc3ea27c000 task.ti:
ffffffc3ea27c000
[   99.123024] PC is at 0x45f280
[   99.125974] LR is at 0x45f280
[   99.128923] pc : [<000000000045f280>] lr : [<000000000045f280>]
pstate: 600003c5
[   99.136279] sp : ffffffc3ea27fed0
[   99.139574] x29: 0000007ff2519ba0 x28: 0000000000521000
[   99.144875] x27: 0000000026dced90 x26: 0000000000000000
[   99.150179] x25: 0000000026dcd830 x24: 0000007ff251ada0
[   99.155483] x23: 0000000080000000 x22: 0000007fb177f3ec
[   99.160788] x21: ffffffc3ea27fff0 x20: 0000000000011f0d
[   99.166092] x19: 0000000000011f0d x18: 0000007ff2519910
[   99.171397] x17: 0000007fb177f3a8 x16: 0000000000519000
[   99.176702] x15: 0000007fb11ce5a0 x14: 3030303030303038
[   99.182007] x13: 203a657461747370 x12: 205d3e3038326635
[   99.187312] x11: 0000000000000002 x10: 0000000000000420
[   99.192616] x9 : 0000000000000421 x8 : 0000000000000006
[   99.197922] x7 : ffffffc0000812cc [   99.198976] Bad mode in FIQ
handler detected, code 0x56000000
[   99.198980] CPU: 1 PID: 1891 Comm: mongod Not tainted
3.15.0-next-20140610+ #26
[   99.198982] task: ffffffc3e9c12040 ti: ffffffc3ea200000 task.ti:
ffffffc3ea200000
[   99.198984] PC is at 0x7f93059410
[   99.198985] LR is at 0x90e120
[   99.198986] pc : [<0000007f93059410>] lr : [<000000000090e120>]
pstate: 60000000
[   99.198987] sp : ffffffc3ea203ff0
[   99.198988] x29: 0000007f72ffe2b0 x28: 0000000000000001
[   99.198990] x27: 0000007f72ffe3a0 x26: 000000000000000a
[   99.198992] x25: 0000007f600019d4 x24: 0000007f72ffe520
[   99.198994] x23: 0000007f72ffe440 x22: 0000000000000400
[   99.198996] x21: 0000007f72ffe448 x20: 0000007f600019d4
[   99.198998] x19: 0000007f72ffe3c0 x18: 0000007f72ffe010
[   99.199000] x17: 0000007f93059410 x16: 0000000000b9c078
[   99.199001] x15: 0001504794000000 x14: 6f697463656e6e6f
[   99.199003] x13: 6320726f6620676e x12: 0000000000000000
[   99.199005] x11: 000000000000001b x10: 00000000ffffffff
[   99.199007] x9 : fefefefefefefeff x8 : 0000000000000048
[   99.199008] x7 : 0000000000000000 x6 : 00000000ffffffbb
[   99.199010] x5 : 0000000000002710 x4 : 0000007f72ffe380
[   99.199012] x3 : 0000000000000000 x2 : 0000000000000000
[   99.199014] x1 : 0000007f72ffe3c0 x0 : 000000000000000b
[   99.199015]
[   99.199018] Bad mode in Synchronous Abort handler detected, code 0x8600000f
[   99.199020] CPU: 1 PID: 1891 Comm: mongod Not tainted
3.15.0-next-20140610+ #26
[   99.199022] task: ffffffc3e9c12040 ti: ffffffc3ea200000 task.ti:
ffffffc3ea200000
[   99.199022] PC is at 0x90e120
[   99.199023] LR is at 0x90e120
[   99.199024] pc : [<000000000090e120>] lr : [<000000000090e120>]
pstate: 600003c5
[   99.199025] sp : ffffffc3ea203ed0
[   99.199026] x29: 0000007f72ffe2b0 x28: 0000000000000001
[   99.199028] x27: 0000007f72ffe3a0 x26: 000000000000000a
[   99.199030] x25: 0000007f600019d4 x24: 0000007f72ffe520
[   99.199031] x23: 0000000060000000 x22: 0000007f93059410
[   99.199033] x21: ffffffc3ea203ff0 x20: 0000007f600019d4
[   99.199035] x19: 0000007f72ffe3c0 x18: 0000007f72ffe010
[   99.199036] x17: 0000007f93059410 x16: 0000000000b9c078
[   99.199038] x15: 0001504794000000 x14: 30303036203a6574
[   99.199040] x13: 61747370205d3e30 x12: 3231653039303030
[   99.199042] x11: ffffffc000981000 x10: ffffffc0009f14a0
[   99.199044] x9 : 00000000000f0e14 x8 : ffffffc000a013f4
[   99.199045] x7 : 0000000000000015 x6 : 0000000080000000
[   99.199047] x5 : 00000000000003c0 x4 : 0000000000000001
[   99.199049] x3 : ffffffc3ea203cf0 x2 : 00000000dead4ead
[   99.199050] x1 : 00000000000000c3 x0 : 0000000000000000
[   99.199052]

[   99.438632] x6 : ffffffc3ea27fea0
[   99.442208] x5 : 00000000000003c0 x4 : 0000000000000001
[   99.447512] x3 : ffffffc3ea27fcf0 x2 : 00000000dead4ead
[   99.452816] x1 : 000000000000005e x0 : 0000000000000000
[   99.458121]
[   99.459602] Process perf (pid: 3979, stack limit = 0xffffffc3ea27c058)
[   99.466095] Stack: (0xffffffc3ea27fed0 to 0xffffffc3ea280000)
[   99.471812] fec0:                                     26dced90
00000000 0000275a 00000000
[   99.479948] fee0: f2519c90 0000007f 0011f0d0 00000000 0000275a
00000000 009b2648 ffffffc0
[   99.488083] ff00: 11766963 3a043a1c 96a1cc33 0000007f 7f7f7f7f
7f7f7f7f 07cb19c0 00000000
[   99.496217] ff20: 01010101 01010101 00000002 00000000 00000004
00000000 01000000 00000000
[   99.504352] ff40: 31646363 66323839 b11ce5a0 0000007f 00519000
00000000 b177f3a8 0000007f
[   99.512486] ff60: f2519910 0000007f 00011f0d 00000000 00011f0d
00000000 26dcd390 00000000
[   99.520620] ff80: 0000275a 00000000 00000003 00000000 f251ada0
0000007f 26dcd830 00000000
[   99.528755] ffa0: 00000000 00000000 26dced90 00000000 00521000
00000000 f2519ba0 0000007f
[   99.536890] ffc0: 0045f280 00000000 ea27fff0 ffffffc3 b177f3ec
0000007f 80000000 00000000
[   99.545024] ffe0: 00000000 00000000 ffffffff ffffffff eda1d668
ffffffbc eda1d6a0 ffffffbc
[   99.553158] Call trace:
[   99.555592] Code: aa1b03e0 2a1603e1 910383a2 97fed479 (6b16029f)
[   99.561655] Internal error: Oops - bad mode: 0 [#2] SMP
[   99.561687] ---[ end trace 8a63b73eb5685762 ]---
[   99.561915] Bad mode in FIQ handler detected, code 0x56000000
[   99.561918] CPU: 0 PID: 1580 Comm: in:imklog Tainted: G      D
 3.15.0-next-20140610+ #26
[   99.561920] task: ffffffc3ef270000 ti: ffffffc3ea094000 task.ti:
ffffffc3ea094000
[   99.561921] PC is at 0x40d950
[   99.561922] LR is at 0x442b90
[   99.561924] pc : [<000000000040d950>] lr : [<0000000000442b90>]
pstate: 60000000
[   99.561925] sp : ffffffc3ea097ff0
[   99.561927] x29: 0000007fb5c42e80 x28: 0000000000001f9f
[   99.561929] x27: 0000007fb64bef28 x26: 0000007fb64d0520
[   99.561931] x25: 0000007fb5c43fdf x24: 0000000000465a20
[   99.561932] x23: 0000000000465ad0 x22: 0000000000000000
[   99.561934] x21: 0000000000483940 x20: 000000000047c000
[   99.561936] x19: 000000003d9a40d0 x18: 000000000000000d
[   99.561937] x17: 0000007fb672fa2c x16: 000000000047d268
[   99.561939] x15: ffffffffffffffed x14: 000000000000000d
[   99.561941] x13: fffffffffffffe09 x12: 0000000000000018
[   99.561943] x11: 0101010101010101 x10: 7f7f7f7f7fffff7f
[   99.561944] x9 : 0000000000000000 x8 : 0000000000000000
[   99.561946] x7 : 0000000000000000 x6 : 0000007fb5c64890
[   99.561948] x5 : 0000000000000000 x4 : 0000000000000001
[   99.561949] x3 : 00000000ffffffff x2 : 0000000000000000
[   99.561951] x1 : 0000000000000000 x0 : 000000003d9a4410
[   99.561951]
[   99.561955] Bad mode in Synchronous Abort handler detected, code 0x8600000f
[   99.561957] CPU: 0 PID: 1580 Comm: in:imklog Tainted: G      D
 3.15.0-next-20140610+ #26
[   99.561958] task: ffffffc3ef270000 ti: ffffffc3ea094000 task.ti:
ffffffc3ea094000
[   99.561959] PC is at 0x442b90
[   99.561960] LR is at 0x442b90
[   99.561961] pc : [<0000000000442b90>] lr : [<0000000000442b90>]
pstate: 600003c5
[   99.561961] sp : ffffffc3ea097ed0
[   99.561963] x29: 0000007fb5c42e80 x28: 0000000000001f9f
[   99.561965] x27: 0000007fb64bef28 x26: 0000007fb64d0520
[   99.561967] x25: 0000007fb5c43fdf x24: 0000000000465a20
[   99.561969] x23: 0000000060000000 x22: 000000000040d950
[   99.561970] x21: ffffffc3ea097ff0 x20: 000000000047c000
[   99.561972] x19: 000000003d9a40d0 x18: 000000000000000d
[   99.561974] x17: 0000007fb672fa2c x16: 000000000047d268
[   99.561976] x15: ffffffffffffffed x14: 30303036203a6574
[   99.561977] x13: 61747370205d3e30 x12: 3962323434303030
[   99.561979] x11: ffffffc000981000 x10: ffffffc0009f14a0
[   99.561981] x9 : 00000000000efb2c x8 : ffffffc000a026dc
[   99.561982] x7 : 0000007fb672fadc x6 : ffffffffffffffff
[   99.561984] x5 : 00000000000003c0 x4 : 0000000000000001
[   99.561986] x3 : ffffffc3ea097cf0 x2 : 00000000dead4ead
[   99.561987] x1 : 00000000000000b7 x0 : 0000000000000000
[   99.561988]
[   99.810579] Modules linked in:
[   99.813626] CPU: 1 PID: 1891 Comm: mongod Tainted: G      D
3.15.0-next-20140610+ #26
[   99.821933] task: ffffffc3e9c12040 ti: ffffffc3ea200000 task.ti:
ffffffc3ea200000
[   99.829375] PC is at 0x90e120
[   99.832325] LR is at 0x90e120
[   99.835275] pc : [<000000000090e120>] lr : [<000000000090e120>]
pstate: 600003c5
[   99.842630] sp : ffffffc3ea203ed0
[   99.845925] x29: 0000007f72ffe2b0 x28: 0000000000000001
[   99.851229] x27: 0000007f72ffe3a0 x26: 000000000000000a
[   99.856532] x25: 0000007f600019d4 x24: 0000007f72ffe520
[   99.861835] x23: 0000000060000000 x22: 0000007f93059410
[   99.867139] x21: ffffffc3ea203ff0 x20: 0000007f600019d4
[   99.872444] x19: 0000007f72ffe3c0 x18: 0000007f72ffe010
[   99.877749] x17: 0000007f93059410 x16: 0000000000b9c078
[   99.883054] x15: 0001504794000000 x14: 30303036203a6574
[   99.888359] x13: 61747370205d3e30 x12: 3231653039303030
[   99.893663] x11: ffffffc000981000 x10: ffffffc0009f14a0
[   99.898968] x9 : 00000000000f0e14 x8 : ffffffc000a013f4
[   99.904273] x7 : 0000000000000015 x6 : 0000000080000000
[   99.909578] x5 : 00000000000003c0 x4 : 0000000000000001
[   99.914882] x3 : ffffffc3ea203cf0 x2 : 00000000dead4ead
[   99.920186] x1 : 00000000000000c3 x0 : 0000000000000000
[   99.925490]
[   99.926971] Process mongod (pid: 1891, stack limit = 0xffffffc3ea200058)
[   99.933636] Stack: (0xffffffc3ea203ed0 to 0xffffffc3ea204000)
[   99.939353] 3ec0:                                     0000000b
00000000 72ffe3c0 0000007f
[   99.947489] 3ee0: 00000000 00000000 00000000 00000000 72ffe380
0000007f 00002710 00000000
[   99.955623] 3f00: ffffffbb 00000000 00000000 00000000 00000048
00000000 fefefeff fefefefe
[   99.963758] 3f20: ffffffff 00000000 0000001b 00000000 00000000
00000000 6620676e 6320726f
[   99.971893] 3f40: 656e6e6f 6f697463 94000000 00015047 00b9c078
00000000 93059410 0000007f
[   99.980028] 3f60: 72ffe010 0000007f 72ffe3c0 0000007f 600019d4
0000007f 72ffe448 0000007f
[   99.988162] 3f80: 00000400 00000000 72ffe440 0000007f 72ffe520
0000007f 600019d4 0000007f
[   99.996298] 3fa0: 0000000a 00000000 72ffe3a0 0000007f 00000001
00000000 72ffe2b0 0000007f
[  100.004432] 3fc0: 0090e120 00000000 ea203ff0 ffffffc3 93059410
0000007f 60000000 00000000
[  100.012568] 3fe0: 0000000b 00000000 00000048 00000000 020004c0
00000000 0a480040 00000000
[  100.020701] Call trace:
[  100.023133] Code: 910343a4 f9006ba2 f9006fa5 97f14ff9 (6b1f001f)
[  100.029194] Internal error: Oops - bad mode: 0 [#3] SMP
[  100.029215] ---[ end trace 8a63b73eb5685763 ]---
[  100.038982] Modules linked in:
[  100.042031] CPU: 0 PID: 1580 Comm: in:imklog Tainted: G      D
 3.15.0-next-20140610+ #26
[  100.050598] task: ffffffc3ef270000 ti: ffffffc3ea094000 task.ti:
ffffffc3ea094000
[  100.058041] PC is at 0x442b90
[  100.060991] LR is at 0x442b90
[  100.063941] pc : [<0000000000442b90>] lr : [<0000000000442b90>]
pstate: 600003c5
[  100.071296] sp : ffffffc3ea097ed0
[  100.074591] x29: 0000007fb5c42e80 x28: 0000000000001f9f
[  100.079894] x27: 0000007fb64bef28 x26: 0000007fb64d0520
[  100.085198] x25: 0000007fb5c43fdf x24: 0000000000465a20
[  100.090503] x23: 0000000060000000 x22: 000000000040d950
[  100.095806] x21: ffffffc3ea097ff0 x20: 000000000047c000
[  100.101111] x19: 000000003d9a40d0 x18: 000000000000000d
[  100.106416] x17: 0000007fb672fa2c x16: 000000000047d268
[  100.111722] x15: ffffffffffffffed x14: 30303036203a6574
[  100.117025] x13: 61747370205d3e30 x12: 3962323434303030
[  100.122329] x11: ffffffc000981000 x10: ffffffc0009f14a0
[  100.127633] x9 : 00000000000efb2c x8 : ffffffc000a026dc
[  100.132935] x7 : 0000007fb672fadc x6 : ffffffffffffffff
[  100.138240] x5 : 00000000000003c0 x4 : 0000000000000001
[  100.143545] x3 : ffffffc3ea097cf0 x2 : 00000000dead4ead
[  100.148850] x1 : 00000000000000b7 x0 : 0000000000000000
[  100.154154]
[  100.155635] Process in:imklog (pid: 1580, stack limit = 0xffffffc3ea094058)
[  100.162559] Stack: (0xffffffc3ea097ed0 to 0xffffffc3ea098000)
[  100.168275] 7ec0:                                     3d9a4410
00000000 00000000 00000000
[  100.176410] 7ee0: 00000000 00000000 ffffffff 00000000 00000001
00000000 00000000 00000000
[  100.184544] 7f00: b5c64890 0000007f 00000000 00000000 00000000
00000000 00000000 00000000
[  100.192678] 7f20: 7fffff7f 7f7f7f7f 01010101 01010101 00000018
00000000 fffffe09 ffffffff
[  100.200813] 7f40: 0000000d 00000000 ffffffed ffffffff 0047d268
00000000 b672fa2c 0000007f
[  100.208948] 7f60: 0000000d 00000000 3d9a40d0 00000000 0047c000
00000000 00483940 00000000
[  100.217082] 7f80: 00000000 00000000 00465ad0 00000000 00465a20
00000000 b5c43fdf 0000007f
[  100.225216] 7fa0: b64d0520 0000007f b64bef28 0000007f 00001f9f
00000000 b5c42e80 0000007f
[  100.233352] 7fc0: 00442b90 00000000 ea097ff0 ffffffc3 0040d950
00000000 60000000 00000000
[  100.241486] 7fe0: 3d9a421c 00000000 00000062 00000000 00000000
00000000 00000000 00000000
[  100.249619] Call trace:
[  100.252051] Code: d00001d4 97ffee28 f9408a60 97ff2b71 (b94067a0)
[  100.258146] ---[ end trace 8a63b73eb5685764 ]---


Thanks,



More information about the linux-arm-kernel mailing list