[PATCH v2 0/3] Fix G12 PMU conflict

Marc Gonzalez marc.w.gonzalez at free.fr
Mon Mar 27 08:52:52 PDT 2023


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?





More information about the linux-arm-kernel mailing list