Thread (4 messages) 4 messages, 2 authors, 2021-11-26

Re: [PATCH v2] ath11k: add wait operation for tx management packets for flush from mac80211

From: Wen Gong <hidden>
Date: 2021-11-26 06:54:45
Also in: ath11k

Hi Kalle,

I have sent new version patch, I have test it for connect/disconnect, it 
is OK now, it will not happen timed out.

https://patchwork.kernel.org/project/linux-wireless/patch/20211126064934.26490-1-quic_wgong@quicinc.com/

[PATCH v3] ath11k: add wait operation for tx management packets for 
flush from mac80211

On 11/26/2021 11:32 AM, Wen Gong wrote:
Hi Kalle,

I have found the reason.

I will send new version to fix it.

It is because commit c0b0d2e87d91ce283c8766b4b3c2ec9ac90ebf96 (ath11k: 
Increment pending_mgmt_tx count before tx send invoke) which commit at 
Nov 15 11:25:52 2021.

And my rebase is auto merged by git, then it inc twice for 
num_pending_mgmt_tx.

wgong@wgong-HP3-Z230-SFF-Workstation:~/ath11k/ath-upstream$ git 
cherry-pick 0869610178a1
Auto-merging drivers/net/wireless/ath/ath11k/wmi.c
Auto-merging drivers/net/wireless/ath/ath11k/mac.c
Auto-merging drivers/net/wireless/ath/ath11k/core.h
Auto-merging drivers/net/wireless/ath/ath11k/core.c
[add_wait_mgmt_ath-202111221436 954d233dbe34] ath11k: add wait 
operation for tx management packets for flush from mac80211

On 11/22/2021 8:19 PM, Kalle Valo wrote:
quoted
Wen Gong [off-list ref] writes:
quoted
In ath11k, tx of management packet is doing in a work queue. Sometimes
the workqueue does not finish tx immediately, then it lead after the 
next
step of vdev delete finished, it start to send the management packet to
firmware and lead firmware crash.

ieee80211_set_disassoc have logic of ieee80211_flush_queues after it
send_deauth_disassoc to ath11k, its purpose is make sure the deauth
was actually sent, so it need to change ath11k to match the purpose
of mac80211.

To address these issue wait for tx mgmt and tx data packets.

Tested-on: QCA6390 hw2.0 PCI 
WLAN.HST.1.0.1-01230-QCAHSTSWPLZ_V2_TO_X86-1

Signed-off-by: Wen Gong <redacted>
I sometimes see new warnings with this patch:

[  142.346474] ath11k_pci 0000:06:00.0: failed to flush mgmt transmit 
queue 0
[  147.466367] ath11k_pci 0000:06:00.0: failed to flush mgmt transmit 
queue 0

And more importantly this breaks suspend on my NUC testbox:

[  175.141820] PM: suspend entry (deep)
[  175.150512] Filesystems sync: 0.008 seconds
[  175.229703] Freezing user space processes ... (elapsed 0.003 
seconds) done.
[  175.233506] OOM killer disabled.
[  175.233588] Freezing remaining freezable tasks ... (elapsed 0.001 
seconds) done.
[  175.242457] printk: Suspending console(s) (use no_console_suspend 
to debug)
[  175.245269] wlan0: deauthenticating from 00:03:7f:48:81:59 by 
local choice (Reason: 3=DEAUTH_LEAVING)
[  175.285881] e1000e: EEE TX LPI TIMER: 00000011
[  180.745259] ath11k_pci 0000:06:00.0: failed to flush mgmt transmit 
queue 0
[  185.864977] ath11k_pci 0000:06:00.0: failed to flush mgmt transmit 
queue 0
[  185.970601] PM: Some devices failed to suspend, or early wake 
event detected
[  185.974081] usb usb3: root hub lost power or was reset
[  185.974135] usb usb4: root hub lost power or was reset
[  186.098870] nvme nvme0: 8/0/0 default/read/poll queues
[  186.297077] OOM killer enabled.
[  186.297361] Restarting tasks ... done.
[  186.343733] PM: suspend exit

My setup:

Tag:    ath-202111221111

[  151.123732] ath11k_pci 0000:06:00.0: MSI vectors: 32
[  151.123851] ath11k_pci 0000:06:00.0: qca6390 hw2.0
[  151.720618] ath11k_pci 0000:06:00.0: chip_id 0x0 chip_family 0xb 
board_id 0xff soc_id 0xffffffff
[  151.720912] ath11k_pci 0000:06:00.0: fw_version 0x101c06cc 
fw_build_timestamp 2020-06-24 19:50 fw_build_id
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help