Re: ath11k

Jeff Johnson
2024-04-30T02:03:34Z

On 4/29/2024 6:54 PM, Kang Yang wrote:
>
>
> On 4/29/2024 10:53 PM, Lindner, Frank wrote:
>> Hi dev-guys,
>>
>> QCN9074 mPCIe-module with ath-next Kernel 6.9.0-rc1 (Ubuntu 24.04) causing Kernel Crash, when setting device to monitor mode. This does not happen instantly, it make take some time to fail.
>>
>> [Mon Apr 29 14:17:57 2024] rcu: INFO: rcu_preempt self-detected stall on CPU
>> [Mon Apr 29 14:17:57 2024] rcu: 0-....: (15661 ticks this GP) idle=9394/1/0x4000000000000000 softirq=26961/26962 fqs=7499
>> [Mon Apr 29 14:17:57 2024] rcu: (t=15000 jiffies g=78093 q=1070 ncpus=16)
>> [Mon Apr 29 14:17:57 2024] CPU: 0 PID: 15 Comm: ksoftirqd/0 Tainted: G L 6.9.0-rc1-ath-next-j001 #11
>> [Mon Apr 29 14:17:57 2024] Hardware name: To Be Filled By O.E.M. Z590M Pro4/Z590M Pro4, BIOS P2.20 06/06/2022
>> [Mon Apr 29 14:17:57 2024] RIP: 0010:ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k]
>> [Mon Apr 29 14:17:57 2024] Code: 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 66 0f 1f 00 0f 1f 44 00 00 55 8b 46 60 45 31 c0 48 89 e5 3b 46 70 74 08 <48> 8b 56 10 4c 8d 04 82 4c 89 c0 5d c3 cc cc cc cc 0f 1f 80 00 00
>> [Mon Apr 29 14:17:57 2024] RSP: 0018:ffffba0e80113b90 EFLAGS: 00000283
>> [Mon Apr 29 14:17:57 2024] RAX: 0000000000001bf8 RBX: ffff924e4a81a3f8 RCX: 0000000000000000
>> [Mon Apr 29 14:17:57 2024] RDX: 0000000000000c0a RSI: ffff924e45347088 RDI: ffff924e45340000
>> [Mon Apr 29 14:17:57 2024] RBP: ffffba0e80113b90 R08: 0000000000000000 R09: ffff924e4a81a1d0
>> [Mon Apr 29 14:17:57 2024] R10: ffffba0e80113ae8 R11: 000000000000ffff R12: 0000000000000000
>> [Mon Apr 29 14:17:57 2024] R13: ffff924e4a819fe0 R14: ffff924e4d575c00 R15: ffff924e45347088
>> [Mon Apr 29 14:17:57 2024] FS: 0000000000000000(0000) GS:ffff926d1ee00000(0000) knlGS:0000000000000000
>> [Mon Apr 29 14:17:57 2024] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>> [Mon Apr 29 14:17:57 2024] CR2: 00007fcc86d166e0 CR3: 000000082703c003 CR4: 0000000000770ef0
>> [Mon Apr 29 14:17:57 2024] PKRU: 55555554
>> [Mon Apr 29 14:17:57 2024] Call Trace:
>> [Mon Apr 29 14:17:57 2024] <IRQ>
>> [Mon Apr 29 14:17:57 2024] ? show_regs+0x6d/0x80
>> [Mon Apr 29 14:17:57 2024] ? dump_cpu_task+0x75/0x90
>> [Mon Apr 29 14:17:57 2024] ? rcu_dump_cpu_stacks+0xeb/0x180
>> [Mon Apr 29 14:17:57 2024] ? rcu_sched_clock_irq+0x572/0x1330
>> [Mon Apr 29 14:17:57 2024] ? raw_notifier_call_chain+0x1a/0x20
>> [Mon Apr 29 14:17:57 2024] ? timekeeping_update+0xf7/0x150
>> [Mon Apr 29 14:17:57 2024] ? account_system_index_time+0x9f/0xc0
>> [Mon Apr 29 14:17:57 2024] ? update_process_times+0x75/0xc0
>> [Mon Apr 29 14:17:57 2024] ? tick_nohz_handler+0xdc/0x140
>> [Mon Apr 29 14:17:57 2024] ? __pfx_tick_nohz_handler+0x10/0x10
>> [Mon Apr 29 14:17:57 2024] ? __hrtimer_run_queues+0x10e/0x290
>> [Mon Apr 29 14:17:57 2024] ? clockevents_program_event+0xae/0x130
>> [Mon Apr 29 14:17:57 2024] ? hrtimer_interrupt+0x108/0x240
>> [Mon Apr 29 14:17:57 2024] ? handle_edge_irq+0xde/0x240
>> [Mon Apr 29 14:17:57 2024] ? __sysvec_apic_timer_interrupt+0x5a/0x150
>> [Mon Apr 29 14:17:57 2024] ? sysvec_apic_timer_interrupt+0x7f/0x90
>> [Mon Apr 29 14:17:57 2024] </IRQ>
>> [Mon Apr 29 14:17:57 2024] <TASK>
>> [Mon Apr 29 14:17:57 2024] ? asm_sysvec_apic_timer_interrupt+0x1f/0x30
>> [Mon Apr 29 14:17:57 2024] ? ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k]
>> [Mon Apr 29 14:17:57 2024] ath11k_dp_rx_process_mon_status+0xc45/0x1190 [ath11k]
>> [Mon Apr 29 14:17:57 2024] ? idr_alloc_u32+0x97/0xd0
>> [Mon Apr 29 14:17:57 2024] ath11k_dp_rx_process_mon_rings+0x32a/0x550 [ath11k]
>> [Mon Apr 29 14:17:57 2024] ath11k_dp_service_srng+0x289/0x5a0 [ath11k]
>> [Mon Apr 29 14:17:57 2024] ath11k_pcic_ext_grp_napi_poll+0x30/0xd0 [ath11k]
>> [Mon Apr 29 14:17:57 2024] __napi_poll+0x30/0x1f0
>> [Mon Apr 29 14:17:57 2024] net_rx_action+0x198/0x320
>> [Mon Apr 29 14:17:57 2024] __do_softirq+0xdd/0x319
>> [Mon Apr 29 14:17:57 2024] ? __pfx_smpboot_thread_fn+0x10/0x10
>> [Mon Apr 29 14:17:57 2024] run_ksoftirqd+0x31/0x50
>> [Mon Apr 29 14:17:57 2024] smpboot_thread_fn+0xe3/0x1e0
>> [Mon Apr 29 14:17:57 2024] kthread+0xf5/0x130
>> [Mon Apr 29 14:17:57 2024] ? __pfx_kthread+0x10/0x10
>> [Mon Apr 29 14:17:57 2024] ret_from_fork+0x3d/0x60
>> [Mon Apr 29 14:17:57 2024] ? __pfx_kthread+0x10/0x10
>> [Mon Apr 29 14:17:57 2024] ret_from_fork_asm+0x1a/0x30
>> [Mon Apr 29 14:17:57 2024] </TASK>
>>
>> Any ideas?
>
>
> Add 'spin_lock_bh(&srng->lock)' and 'spin_unlock_bh(&pmon->mon_lock)' in
> ath11k_dp_rx_mon_dest_process().

this advice looks confusing.
that function already has logic to lock/unlock &pmon->mon_lock so I don't see
where you'd add another 'spin_unlock_bh(&pmon->mon_lock)'
and you don't specify where to add 'spin_lock_bh(&srng->lock)', and why isn't
there an unlock for that?

perhaps propose an actual patch :)

/jeff