mbox series

[v2,0/3] Fix G12 PMU conflict

Message ID 20230327120932.2158389-1-mgonzalez@freebox.fr (mailing list archive)
Headers show
Series Fix G12 PMU conflict | expand

Message

Marc Gonzalez March 27, 2023, 12:09 p.m. UTC
Move the PMU DT node & adjust the register offsets.

Marc Gonzalez (3):
  arm64: dts: meson-g12-common: specify full DMC range
  perf/amlogic: resolve conflict between canvas & pmu
  perf/amlogic: adjust register offsets

 arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 15 +++++++--------
 drivers/perf/amlogic/meson_g12_ddr_pmu.c          | 34 ++++++++++++++++-----------------
 2 files changed, 24 insertions(+), 25 deletions(-)

Comments

Neil Armstrong March 27, 2023, 2:15 p.m. UTC | #1
Hi,

On Mon, 27 Mar 2023 14:09:29 +0200, Marc Gonzalez wrote:
> Move the PMU DT node & adjust the register offsets.
> 
> Marc Gonzalez (3):
>   arm64: dts: meson-g12-common: specify full DMC range
>   perf/amlogic: resolve conflict between canvas & pmu
>   perf/amlogic: adjust register offsets
> 
> [...]

Thanks, Applied to https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git (v6.3/dt-fixes)

[1/3] arm64: dts: meson-g12-common: specify full DMC range
      https://git.kernel.org/amlogic/c/aec4353114a408b3a831a22ba34942d05943e462
[2/3] perf/amlogic: resolve conflict between canvas & pmu
      https://git.kernel.org/amlogic/c/33acea2049b5058b93d1dabb536b494f543f02a2

These changes has been applied on the intermediate git tree [1].

The v6.3/dt-fixes branch will then be sent via a formal Pull Request to the Linux SoC maintainers
for inclusion in their intermediate git branches in order to be sent to Linus during
the next merge window, or sooner if it's a set of fixes.

In the cases of fixes, those will be merged in the current release candidate
kernel and as soon they appear on the Linux master branch they will be
backported to the previous Stable and Long-Stable kernels [2].

The intermediate git branches are merged daily in the linux-next tree [3],
people are encouraged testing these pre-release kernels and report issues on the
relevant mailing-lists.

If problems are discovered on those changes, please submit a signed-off-by revert
patch followed by a corrective changeset.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
[3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
Marc Gonzalez March 27, 2023, 3:25 p.m. UTC | #2
On 27/03/2023 14:09, Marc Gonzalez wrote:

> Move the PMU DT node & adjust the register offsets.
> 
> Marc Gonzalez (3):
>   arm64: dts: meson-g12-common: specify full DMC range
>   perf/amlogic: resolve conflict between canvas & pmu
>   perf/amlogic: adjust register offsets

Hmmm... the perf driver doesn't like my setup... :(

# perf record -a -F 1009 --call-graph fp -B curl -o /dev/null http://192.168.1.254:8095/fixed/1G
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0 1024M    0 8342k    0     0  7564k      0  0:02:18  0:00:01  0:02:17 7563k

[ 1036.936099] SError Interrupt on CPU1, code 0x00000000bf000000 -- SError
[ 1036.936116] CPU: 1 PID: 61 Comm: kworker/u9:0 Not tainted 6.2.0 #449
[ 1036.936122] Hardware name: SEI Robotics SEI510 (DT)
[ 1036.936126] Workqueue: brcmf_wq/mmc2:0001:1 brcmf_sdio_dataworker
[ 1036.936144] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 1036.936150] pc : brcmf_sdiod_skbuff_read+0x28/0xa0
[ 1036.936159] lr : brcmf_sdiod_recv_chain+0xe4/0x160
[ 1036.936166] sp : ffff80000a18bc00
[ 1036.936169] x29: ffff80000a18bc00 x28: ffff8000087d31a0 x27: ffff8000087d2e60
[ 1036.936177] x26: ffff000004990b00 x25: 0000000000000009 x24: ffff8000087d31a0
[ 1036.936184] x23: ffff000004998500 x22: 0000000000008000 x21: ffff000000873278
[ 1036.936192] x20: 000000000000c100 x19: ffff000000872800 x18: 0000000000000000
[ 1036.936199] x17: ffff80005df77000 x16: ffff80000800c000 x15: 0000000000000000
[ 1036.936205] x14: 0000000000000002 x13: 0000000000077f7a x12: 0000000000000068
[ 1036.936213] x11: 00000000000000c0 x10: 0000000000000068 x9 : fffffc0000150800
[ 1036.936220] x8 : fffffc0000150801 x7 : ffff80005df77000 x6 : ffff000004998500
[ 1036.936227] x5 : ffff0000008bc000 x4 : 000000000000c103 x3 : ffff000004998500
[ 1036.936233] x2 : 0000000000008000 x1 : 0000000000000002 x0 : ffff000000872800
[ 1036.936243] Kernel panic - not syncing: Asynchronous SError Interrupt
[ 1036.936247] CPU: 1 PID: 61 Comm: kworker/u9:0 Not tainted 6.2.0 #449
[ 1036.936252] Hardware name: SEI Robotics SEI510 (DT)
[ 1036.936255] Workqueue: brcmf_wq/mmc2:0001:1 brcmf_sdio_dataworker
[ 1036.936262] Call trace:
[ 1036.936264]  dump_backtrace.part.0+0xe0/0xf0
[ 1036.936273]  show_stack+0x18/0x30
[ 1036.936280]  dump_stack_lvl+0x68/0x84
[ 1036.936288]  dump_stack+0x18/0x34
[ 1036.936294]  panic+0x184/0x344
[ 1036.936301]  nmi_panic+0xac/0xb0
[ 1036.936308]  arm64_serror_panic+0x6c/0x80
[ 1036.936314]  do_serror+0x58/0x60
[ 1036.936318]  el1h_64_error_handler+0x30/0x50
[ 1036.936324]  el1h_64_error+0x64/0x68
[ 1036.936330]  brcmf_sdiod_skbuff_read+0x28/0xa0
[ 1036.936336]  brcmf_sdiod_recv_chain+0xe4/0x160
[ 1036.936343]  brcmf_sdio_dataworker+0x898/0x23d0
[ 1036.936348]  process_one_work+0x1cc/0x320
[ 1036.936354]  worker_thread+0x14c/0x450
[ 1036.936359]  kthread+0xfc/0x100
[ 1036.936364]  ret_from_fork+0x10/0x20
[ 1036.936371] SMP: stopping secondary CPUs
[ 1036.936378] Kernel Offset: disabled
[ 1036.936379] CPU features: 0x00000,01000100,0000420b
[ 1036.936384] Memory Limit: none
[ 1037.149180] ---[ end Kernel panic - not syncing: Asynchronous SError Interrupt ]---
Neil Armstrong March 27, 2023, 3:31 p.m. UTC | #3
Hi,

On Mon, 27 Mar 2023 14:09:29 +0200, Marc Gonzalez wrote:
> Move the PMU DT node & adjust the register offsets.
> 
> Marc Gonzalez (3):
>   arm64: dts: meson-g12-common: specify full DMC range
>   perf/amlogic: resolve conflict between canvas & pmu
>   perf/amlogic: adjust register offsets
> 
> [...]

Thanks, Applied to https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git (v6.3/fixes)

[3/3] perf/amlogic: adjust register offsets
      https://git.kernel.org/amlogic/c/f9d323e7c1724270d747657051099826744e91e7

These changes has been applied on the intermediate git tree [1].

The v6.3/fixes branch will then be sent via a formal Pull Request to the Linux SoC maintainers
for inclusion in their intermediate git branches in order to be sent to Linus during
the next merge window, or sooner if it's a set of fixes.

In the cases of fixes, those will be merged in the current release candidate
kernel and as soon they appear on the Linux master branch they will be
backported to the previous Stable and Long-Stable kernels [2].

The intermediate git branches are merged daily in the linux-next tree [3],
people are encouraged testing these pre-release kernels and report issues on the
relevant mailing-lists.

If problems are discovered on those changes, please submit a signed-off-by revert
patch followed by a corrective changeset.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
[3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
Marc Gonzalez March 27, 2023, 3:36 p.m. UTC | #4
On 27/03/2023 17:25, Marc Gonzalez wrote:

> Hmmm... the perf driver doesn't like my setup... :(
> 
> # perf record -a -F 1009 --call-graph fp -B curl -o /dev/null http://192.168.1.254:8095/fixed/1G
>   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
>                                  Dload  Upload   Total   Spent    Left  Speed
>   0 1024M    0 8342k    0     0  7564k      0  0:02:18  0:00:01  0:02:17 7563k
> 
> [ 1036.936099] SError Interrupt on CPU1, code 0x00000000bf000000 -- SError
> [ 1036.936116] CPU: 1 PID: 61 Comm: kworker/u9:0 Not tainted 6.2.0 #449
> [ 1036.936122] Hardware name: SEI Robotics SEI510 (DT)
> [ 1036.936126] Workqueue: brcmf_wq/mmc2:0001:1 brcmf_sdio_dataworker
> [ 1036.936144] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> [ 1036.936150] pc : brcmf_sdiod_skbuff_read+0x28/0xa0
> [ 1036.936159] lr : brcmf_sdiod_recv_chain+0xe4/0x160
> [ 1036.936166] sp : ffff80000a18bc00
> [ 1036.936169] x29: ffff80000a18bc00 x28: ffff8000087d31a0 x27: ffff8000087d2e60
> [ 1036.936177] x26: ffff000004990b00 x25: 0000000000000009 x24: ffff8000087d31a0
> [ 1036.936184] x23: ffff000004998500 x22: 0000000000008000 x21: ffff000000873278
> [ 1036.936192] x20: 000000000000c100 x19: ffff000000872800 x18: 0000000000000000
> [ 1036.936199] x17: ffff80005df77000 x16: ffff80000800c000 x15: 0000000000000000
> [ 1036.936205] x14: 0000000000000002 x13: 0000000000077f7a x12: 0000000000000068
> [ 1036.936213] x11: 00000000000000c0 x10: 0000000000000068 x9 : fffffc0000150800
> [ 1036.936220] x8 : fffffc0000150801 x7 : ffff80005df77000 x6 : ffff000004998500
> [ 1036.936227] x5 : ffff0000008bc000 x4 : 000000000000c103 x3 : ffff000004998500
> [ 1036.936233] x2 : 0000000000008000 x1 : 0000000000000002 x0 : ffff000000872800
> [ 1036.936243] Kernel panic - not syncing: Asynchronous SError Interrupt
> [ 1036.936247] CPU: 1 PID: 61 Comm: kworker/u9:0 Not tainted 6.2.0 #449
> [ 1036.936252] Hardware name: SEI Robotics SEI510 (DT)
> [ 1036.936255] Workqueue: brcmf_wq/mmc2:0001:1 brcmf_sdio_dataworker
> [ 1036.936262] Call trace:
> [ 1036.936264]  dump_backtrace.part.0+0xe0/0xf0
> [ 1036.936273]  show_stack+0x18/0x30
> [ 1036.936280]  dump_stack_lvl+0x68/0x84
> [ 1036.936288]  dump_stack+0x18/0x34
> [ 1036.936294]  panic+0x184/0x344
> [ 1036.936301]  nmi_panic+0xac/0xb0
> [ 1036.936308]  arm64_serror_panic+0x6c/0x80
> [ 1036.936314]  do_serror+0x58/0x60
> [ 1036.936318]  el1h_64_error_handler+0x30/0x50
> [ 1036.936324]  el1h_64_error+0x64/0x68
> [ 1036.936330]  brcmf_sdiod_skbuff_read+0x28/0xa0
> [ 1036.936336]  brcmf_sdiod_recv_chain+0xe4/0x160
> [ 1036.936343]  brcmf_sdio_dataworker+0x898/0x23d0
> [ 1036.936348]  process_one_work+0x1cc/0x320
> [ 1036.936354]  worker_thread+0x14c/0x450
> [ 1036.936359]  kthread+0xfc/0x100
> [ 1036.936364]  ret_from_fork+0x10/0x20
> [ 1036.936371] SMP: stopping secondary CPUs
> [ 1036.936378] Kernel Offset: disabled
> [ 1036.936379] CPU features: 0x00000,01000100,0000420b
> [ 1036.936384] Memory Limit: none
> [ 1037.149180] ---[ end Kernel panic - not syncing: Asynchronous SError Interrupt ]---


Different crash signature:

# ./wifi.sh 
Successfully initialized wpa_supplicant
[   40.127823] ieee80211 phy0: brcmf_dongle_roam: WLC_SET_ROAM_TRIGGER error (-52)
udhcpc: started, v1.35.0
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting select for 192.168.1.67, server 192.168.1.254
udhcpc: lease of 192.168.1.67 obtained from 192.168.1.254, lease time 43200
deleting routers
adding dns 192.168.1.254
# 
# perf record -a -F 1009 --call-graph fp -B curl -o /dev/null http://192.168.1.254:8095/fixed/1G
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 15 1024M   15  156M    0     0  8079k      0  0:02:09  0:00:19  0:01:50 8051k

[  132.334655] SError Interrupt on CPU2, code 0x00000000bf000000 -- SError
[  132.334678] CPU: 2 PID: 158 Comm: perf Not tainted 6.2.0 #449
[  132.334686] Hardware name: SEI Robotics SEI510 (DT)
[  132.334690] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[  132.334697] pc : __arch_copy_from_user+0x1c8/0x230
[  132.334714] lr : copy_page_from_iter_atomic+0x1d4/0x5d0
[  132.334723] sp : ffff80000a42bb50
[  132.334725] x29: ffff80000a42bb50 x28: 0000000000000000 x27: 0000000000000800
[  132.334737] x26: ffff80000877da80 x25: ffff000000eb3a00 x24: 0000000000016498
[  132.334745] x23: ffff000000000000 x22: 0000040000000000 x21: ffff80000a42bd50
[  132.334752] x20: ffff000005400000 x19: 0000000000000800 x18: 0000000000000000
[  132.334759] x17: 0000000000000000 x16: 0000000000000000 x15: 0000ffff84a73ff0
[  132.334766] x14: 0000000000000007 x13: 00000000000f1f68 x12: 0000000000000001
[  132.334774] x11: 0000001ecf0a934d x10: 0000000000000000 x9 : ffff80000875c020
[  132.334781] x8 : ffff800008753188 x7 : ffffffffffffff80 x6 : ffff0000054001a0
[  132.334788] x5 : ffff000005400800 x4 : 0000000000000000 x3 : 0000000000000800
[  132.334796] x2 : 0000000000000600 x1 : 0000ffff84a741c0 x0 : ffff000005400000
[  132.334807] Kernel panic - not syncing: Asynchronous SError Interrupt
[  132.334811] CPU: 2 PID: 158 Comm: perf Not tainted 6.2.0 #449
[  132.334817] Hardware name: SEI Robotics SEI510 (DT)
[  132.334822] Call trace:
[  132.334824]  dump_backtrace.part.0+0xe0/0xf0
[  132.334836]  show_stack+0x18/0x30
[  132.334843]  dump_stack_lvl+0x68/0x84
[  132.334851]  dump_stack+0x18/0x34
[  132.334857]  panic+0x184/0x344
[  132.334865]  nmi_panic+0xac/0xb0
[  132.334870]  arm64_serror_panic+0x6c/0x80
[  132.334875]  do_serror+0x58/0x60
[  132.334879]  el1h_64_error_handler+0x30/0x50
[  132.334885]  el1h_64_error+0x64/0x68
[  132.334891]  __arch_copy_from_user+0x1c8/0x230
[  132.334897]  generic_perform_write+0xe8/0x1e0
[  132.334905]  __generic_file_write_iter+0x11c/0x1b0
[  132.334911]  generic_file_write_iter+0x78/0x110
[  132.334915]  vfs_write+0x2b0/0x390
[  132.334923]  ksys_write+0x68/0x100
[  132.334928]  __arm64_sys_write+0x1c/0x30
[  132.334934]  invoke_syscall+0x48/0x120
[  132.334943]  el0_svc_common.constprop.0+0x44/0xf0
[  132.334950]  do_el0_svc+0x38/0xc0
[  132.334956]  el0_svc+0x2c/0x90
[  132.334960]  el0t_64_sync_handler+0xb8/0xc0
[  132.334964]  el0t_64_sync+0x190/0x194
[  132.334970] SMP: stopping secondary CPUs
[  132.334977] Kernel Offset: disabled
[  132.334978] CPU features: 0x00000,01000100,0000420b
[  132.334982] Memory Limit: none


Will check this patch:
https://lore.kernel.org/all/20230209115403.521868-1-jiucheng.xu@amlogic.com/
Marc Gonzalez March 27, 2023, 3:52 p.m. UTC | #5
On 27/03/2023 17:36, Marc Gonzalez wrote:

> On 27/03/2023 17:25, Marc Gonzalez wrote:
> 
>> Hmmm... the perf driver doesn't like my setup... :(
>>
>> # perf record -a -F 1009 --call-graph fp -B curl -o /dev/null http://192.168.1.254:8095/fixed/1G
>>   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
>>                                  Dload  Upload   Total   Spent    Left  Speed
>>   0 1024M    0 8342k    0     0  7564k      0  0:02:18  0:00:01  0:02:17 7563k
>>
>> [ 1036.936099] SError Interrupt on CPU1, code 0x00000000bf000000 -- SError
>> [ 1036.936116] CPU: 1 PID: 61 Comm: kworker/u9:0 Not tainted 6.2.0 #449
>> [ 1036.936122] Hardware name: SEI Robotics SEI510 (DT)
>> [ 1036.936126] Workqueue: brcmf_wq/mmc2:0001:1 brcmf_sdio_dataworker
>> [ 1036.936144] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
>> [ 1036.936150] pc : brcmf_sdiod_skbuff_read+0x28/0xa0
>> [ 1036.936159] lr : brcmf_sdiod_recv_chain+0xe4/0x160
>> [ 1036.936166] sp : ffff80000a18bc00
>> [ 1036.936169] x29: ffff80000a18bc00 x28: ffff8000087d31a0 x27: ffff8000087d2e60
>> [ 1036.936177] x26: ffff000004990b00 x25: 0000000000000009 x24: ffff8000087d31a0
>> [ 1036.936184] x23: ffff000004998500 x22: 0000000000008000 x21: ffff000000873278
>> [ 1036.936192] x20: 000000000000c100 x19: ffff000000872800 x18: 0000000000000000
>> [ 1036.936199] x17: ffff80005df77000 x16: ffff80000800c000 x15: 0000000000000000
>> [ 1036.936205] x14: 0000000000000002 x13: 0000000000077f7a x12: 0000000000000068
>> [ 1036.936213] x11: 00000000000000c0 x10: 0000000000000068 x9 : fffffc0000150800
>> [ 1036.936220] x8 : fffffc0000150801 x7 : ffff80005df77000 x6 : ffff000004998500
>> [ 1036.936227] x5 : ffff0000008bc000 x4 : 000000000000c103 x3 : ffff000004998500
>> [ 1036.936233] x2 : 0000000000008000 x1 : 0000000000000002 x0 : ffff000000872800
>> [ 1036.936243] Kernel panic - not syncing: Asynchronous SError Interrupt
>> [ 1036.936247] CPU: 1 PID: 61 Comm: kworker/u9:0 Not tainted 6.2.0 #449
>> [ 1036.936252] Hardware name: SEI Robotics SEI510 (DT)
>> [ 1036.936255] Workqueue: brcmf_wq/mmc2:0001:1 brcmf_sdio_dataworker
>> [ 1036.936262] Call trace:
>> [ 1036.936264]  dump_backtrace.part.0+0xe0/0xf0
>> [ 1036.936273]  show_stack+0x18/0x30
>> [ 1036.936280]  dump_stack_lvl+0x68/0x84
>> [ 1036.936288]  dump_stack+0x18/0x34
>> [ 1036.936294]  panic+0x184/0x344
>> [ 1036.936301]  nmi_panic+0xac/0xb0
>> [ 1036.936308]  arm64_serror_panic+0x6c/0x80
>> [ 1036.936314]  do_serror+0x58/0x60
>> [ 1036.936318]  el1h_64_error_handler+0x30/0x50
>> [ 1036.936324]  el1h_64_error+0x64/0x68
>> [ 1036.936330]  brcmf_sdiod_skbuff_read+0x28/0xa0
>> [ 1036.936336]  brcmf_sdiod_recv_chain+0xe4/0x160
>> [ 1036.936343]  brcmf_sdio_dataworker+0x898/0x23d0
>> [ 1036.936348]  process_one_work+0x1cc/0x320
>> [ 1036.936354]  worker_thread+0x14c/0x450
>> [ 1036.936359]  kthread+0xfc/0x100
>> [ 1036.936364]  ret_from_fork+0x10/0x20
>> [ 1036.936371] SMP: stopping secondary CPUs
>> [ 1036.936378] Kernel Offset: disabled
>> [ 1036.936379] CPU features: 0x00000,01000100,0000420b
>> [ 1036.936384] Memory Limit: none
>> [ 1037.149180] ---[ end Kernel panic - not syncing: Asynchronous SError Interrupt ]---
> 
> 
> Different crash signature:
> 
> # ./wifi.sh 
> Successfully initialized wpa_supplicant
> [   40.127823] ieee80211 phy0: brcmf_dongle_roam: WLC_SET_ROAM_TRIGGER error (-52)
> udhcpc: started, v1.35.0
> udhcpc: broadcasting discover
> udhcpc: broadcasting discover
> udhcpc: broadcasting select for 192.168.1.67, server 192.168.1.254
> udhcpc: lease of 192.168.1.67 obtained from 192.168.1.254, lease time 43200
> deleting routers
> adding dns 192.168.1.254
> # 
> # perf record -a -F 1009 --call-graph fp -B curl -o /dev/null http://192.168.1.254:8095/fixed/1G
>   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
>                                  Dload  Upload   Total   Spent    Left  Speed
>  15 1024M   15  156M    0     0  8079k      0  0:02:09  0:00:19  0:01:50 8051k
> 
> [  132.334655] SError Interrupt on CPU2, code 0x00000000bf000000 -- SError
> [  132.334678] CPU: 2 PID: 158 Comm: perf Not tainted 6.2.0 #449
> [  132.334686] Hardware name: SEI Robotics SEI510 (DT)
> [  132.334690] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> [  132.334697] pc : __arch_copy_from_user+0x1c8/0x230
> [  132.334714] lr : copy_page_from_iter_atomic+0x1d4/0x5d0
> [  132.334723] sp : ffff80000a42bb50
> [  132.334725] x29: ffff80000a42bb50 x28: 0000000000000000 x27: 0000000000000800
> [  132.334737] x26: ffff80000877da80 x25: ffff000000eb3a00 x24: 0000000000016498
> [  132.334745] x23: ffff000000000000 x22: 0000040000000000 x21: ffff80000a42bd50
> [  132.334752] x20: ffff000005400000 x19: 0000000000000800 x18: 0000000000000000
> [  132.334759] x17: 0000000000000000 x16: 0000000000000000 x15: 0000ffff84a73ff0
> [  132.334766] x14: 0000000000000007 x13: 00000000000f1f68 x12: 0000000000000001
> [  132.334774] x11: 0000001ecf0a934d x10: 0000000000000000 x9 : ffff80000875c020
> [  132.334781] x8 : ffff800008753188 x7 : ffffffffffffff80 x6 : ffff0000054001a0
> [  132.334788] x5 : ffff000005400800 x4 : 0000000000000000 x3 : 0000000000000800
> [  132.334796] x2 : 0000000000000600 x1 : 0000ffff84a741c0 x0 : ffff000005400000
> [  132.334807] Kernel panic - not syncing: Asynchronous SError Interrupt
> [  132.334811] CPU: 2 PID: 158 Comm: perf Not tainted 6.2.0 #449
> [  132.334817] Hardware name: SEI Robotics SEI510 (DT)
> [  132.334822] Call trace:
> [  132.334824]  dump_backtrace.part.0+0xe0/0xf0
> [  132.334836]  show_stack+0x18/0x30
> [  132.334843]  dump_stack_lvl+0x68/0x84
> [  132.334851]  dump_stack+0x18/0x34
> [  132.334857]  panic+0x184/0x344
> [  132.334865]  nmi_panic+0xac/0xb0
> [  132.334870]  arm64_serror_panic+0x6c/0x80
> [  132.334875]  do_serror+0x58/0x60
> [  132.334879]  el1h_64_error_handler+0x30/0x50
> [  132.334885]  el1h_64_error+0x64/0x68
> [  132.334891]  __arch_copy_from_user+0x1c8/0x230
> [  132.334897]  generic_perform_write+0xe8/0x1e0
> [  132.334905]  __generic_file_write_iter+0x11c/0x1b0
> [  132.334911]  generic_file_write_iter+0x78/0x110
> [  132.334915]  vfs_write+0x2b0/0x390
> [  132.334923]  ksys_write+0x68/0x100
> [  132.334928]  __arm64_sys_write+0x1c/0x30
> [  132.334934]  invoke_syscall+0x48/0x120
> [  132.334943]  el0_svc_common.constprop.0+0x44/0xf0
> [  132.334950]  do_el0_svc+0x38/0xc0
> [  132.334956]  el0_svc+0x2c/0x90
> [  132.334960]  el0t_64_sync_handler+0xb8/0xc0
> [  132.334964]  el0t_64_sync+0x190/0x194
> [  132.334970] SMP: stopping secondary CPUs
> [  132.334977] Kernel Offset: disabled
> [  132.334978] CPU features: 0x00000,01000100,0000420b
> [  132.334982] Memory Limit: none
> 
> 
> Will check this patch:
> https://lore.kernel.org/all/20230209115403.521868-1-jiucheng.xu@amlogic.com/

Panics also with the above patch applied :(

The problem seems to be with perf, since normal downloads
complete successfully:


# ./wifi.sh 
Successfully initialized wpa_supplicant
[   12.029572] ieee80211 phy0: brcmf_dongle_roam: WLC_SET_ROAM_TRIGGER error (-52)
udhcpc: started, v1.35.0
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting select for 192.168.1.67, server 192.168.1.254
udhcpc: lease of 192.168.1.67 obtained from 192.168.1.254, lease time 43200
deleting routers
adding dns 192.168.1.254
# 
# curl -o /dev/null http://192.168.1.254:8095/fixed/1G
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1024M  100 1024M    0     0  7927k      0  0:02:12  0:02:12 --:--:-- 8023k
# 
# perf record -a -F 1009 --call-graph fp -B curl -o /dev/null http://192.168.1.254:8095/fixed/1G
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  8 1024M    8 85.7M    0     0  8009k      0  0:02:10  0:00:10  0:02:00 8101k

[  222.699138] SError Interrupt on CPU2, code 0x00000000bf000000 -- SError
[  222.699155] CPU: 2 PID: 159 Comm: perf Not tainted 6.2.0 #451
[  222.699162] Hardware name: SEI Robotics SEI510 (DT)
[  222.699165] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[  222.699170] pc : __arch_copy_from_user+0x1c8/0x230
[  222.699184] lr : copy_page_from_iter_atomic+0x1d4/0x5d0
[  222.699192] sp : ffff80000a313b50
[  222.699195] x29: ffff80000a313b50 x28: 0000000000000000 x27: 0000000000001000
[  222.699205] x26: ffff80000877da80 x25: ffff000000b27d00 x24: 0000000000001f90
[  222.699213] x23: ffff000000000000 x22: 0000040000000000 x21: ffff80000a313d50
[  222.699220] x20: ffff000005400000 x19: 0000000000001000 x18: 0000000000000000
[  222.699227] x17: 0000000000000000 x16: 0000000000000000 x15: 0000ffffa4b73f28
[  222.699234] x14: 0000000000000000 x13: ffff80000875f3ac x12: ffff800008025714
[  222.699241] x11: ffff800008085888 x10: ffff8000080855f4 x9 : ffff800008753188
[  222.699247] x8 : 000000000000000f x7 : 0080000100000009 x6 : ffff0000054001a8
[  222.699253] x5 : ffff000005401000 x4 : 0000000000000008 x3 : ffffffffffffff80
[  222.699260] x2 : 0000000000000df8 x1 : 0000ffffa4b74100 x0 : ffff000005400000
[  222.699270] Kernel panic - not syncing: Asynchronous SError Interrupt
[  222.699274] CPU: 2 PID: 159 Comm: perf Not tainted 6.2.0 #451
[  222.699279] Hardware name: SEI Robotics SEI510 (DT)
[  222.699284] Call trace:
[  222.699286]  dump_backtrace.part.0+0xe0/0xf0
[  222.699298]  show_stack+0x18/0x30
[  222.699303]  dump_stack_lvl+0x68/0x84
[  222.699314]  dump_stack+0x18/0x34
[  222.699319]  panic+0x184/0x344
[  222.699327]  nmi_panic+0xac/0xb0
[  222.699334]  arm64_serror_panic+0x6c/0x80
[  222.699339]  do_serror+0x58/0x60
[  222.699343]  el1h_64_error_handler+0x30/0x50
[  222.699347]  el1h_64_error+0x64/0x68
[  222.699351]  __arch_copy_from_user+0x1c8/0x230
[  222.699357]  generic_perform_write+0xe8/0x1e0
[  222.699366]  __generic_file_write_iter+0x11c/0x1b0
[  222.699374]  generic_file_write_iter+0x78/0x110
[  222.699380]  vfs_write+0x2b0/0x390
[  222.699388]  ksys_write+0x68/0x100
[  222.699394]  __arm64_sys_write+0x1c/0x30
[  222.699400]  invoke_syscall+0x48/0x120
[  222.699408]  el0_svc_common.constprop.0+0x44/0xf0
[  222.699414]  do_el0_svc+0x38/0xc0
[  222.699420]  el0_svc+0x2c/0x90
[  222.699425]  el0t_64_sync_handler+0xb8/0xc0
[  222.699430]  el0t_64_sync+0x190/0x194
[  222.699437] SMP: stopping secondary CPUs
[  222.699444] Kernel Offset: disabled
[  222.699445] CPU features: 0x00000,01000100,0000420b
[  222.699449] Memory Limit: none


Has anyone ever experienced something similar?
Marc Gonzalez March 29, 2023, 12:01 a.m. UTC | #6
On 27/03/2023 17:52, Marc Gonzalez wrote:

> [  222.699138] SError Interrupt on CPU2, code 0x00000000bf000000 -- SError
> [  222.699155] CPU: 2 PID: 159 Comm: perf Not tainted 6.2.0 #451
> [  222.699162] Hardware name: SEI Robotics SEI510 (DT)
> [  222.699165] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> [  222.699170] pc : __arch_copy_from_user+0x1c8/0x230
> [  222.699184] lr : copy_page_from_iter_atomic+0x1d4/0x5d0
> [  222.699192] sp : ffff80000a313b50
> [  222.699195] x29: ffff80000a313b50 x28: 0000000000000000 x27: 0000000000001000
> [  222.699205] x26: ffff80000877da80 x25: ffff000000b27d00 x24: 0000000000001f90
> [  222.699213] x23: ffff000000000000 x22: 0000040000000000 x21: ffff80000a313d50
> [  222.699220] x20: ffff000005400000 x19: 0000000000001000 x18: 0000000000000000
> [  222.699227] x17: 0000000000000000 x16: 0000000000000000 x15: 0000ffffa4b73f28
> [  222.699234] x14: 0000000000000000 x13: ffff80000875f3ac x12: ffff800008025714
> [  222.699241] x11: ffff800008085888 x10: ffff8000080855f4 x9 : ffff800008753188
> [  222.699247] x8 : 000000000000000f x7 : 0080000100000009 x6 : ffff0000054001a8
> [  222.699253] x5 : ffff000005401000 x4 : 0000000000000008 x3 : ffffffffffffff80
> [  222.699260] x2 : 0000000000000df8 x1 : 0000ffffa4b74100 x0 : ffff000005400000
> [  222.699270] Kernel panic - not syncing: Asynchronous SError Interrupt
> [  222.699274] CPU: 2 PID: 159 Comm: perf Not tainted 6.2.0 #451
> [  222.699279] Hardware name: SEI Robotics SEI510 (DT)
> [  222.699284] Call trace:
> [  222.699286]  dump_backtrace.part.0+0xe0/0xf0
> [  222.699298]  show_stack+0x18/0x30
> [  222.699303]  dump_stack_lvl+0x68/0x84
> [  222.699314]  dump_stack+0x18/0x34
> [  222.699319]  panic+0x184/0x344
> [  222.699327]  nmi_panic+0xac/0xb0
> [  222.699334]  arm64_serror_panic+0x6c/0x80
> [  222.699339]  do_serror+0x58/0x60
> [  222.699343]  el1h_64_error_handler+0x30/0x50
> [  222.699347]  el1h_64_error+0x64/0x68
> [  222.699351]  __arch_copy_from_user+0x1c8/0x230
> [  222.699357]  generic_perform_write+0xe8/0x1e0
> [  222.699366]  __generic_file_write_iter+0x11c/0x1b0
> [  222.699374]  generic_file_write_iter+0x78/0x110
> [  222.699380]  vfs_write+0x2b0/0x390
> [  222.699388]  ksys_write+0x68/0x100
> [  222.699394]  __arm64_sys_write+0x1c/0x30
> [  222.699400]  invoke_syscall+0x48/0x120
> [  222.699408]  el0_svc_common.constprop.0+0x44/0xf0
> [  222.699414]  do_el0_svc+0x38/0xc0
> [  222.699420]  el0_svc+0x2c/0x90
> [  222.699425]  el0t_64_sync_handler+0xb8/0xc0
> [  222.699430]  el0t_64_sync+0x190/0x194

In my (limited) experience, these types of panics are Linux
getting nuked from a more privileged context (trustzone).

And indeed, there was a typo in my device tree that disabled
one reserved-memory area. Doh!

After fixing the DT, I can run memtest=17 sucessfully, and
the perf run completes without a hitch.

Sorry for the noise.