Recent driver changes destabilized QCA9377 connection quality
Tobias Predel
tobias.predel at gmail.com
Sun Feb 26 07:40:42 PST 2017
Hello,
as I still encounter some stability issues with my beloved QCA9377 chipset on Linux, I decided to recompile the ath10k kernel module according to [1] in order to enable debugging and tracing (see [2]) instead of bisecting the commits because I don't have the ressource to do that in sufficient time.
Boundary conditions (additional information is provided below):
- Kernel version: 4.9.11
- Firmware files from https://github.com/kvalo/ath10k-firmware (the untested one just cause a firmware crash so I guess that one is for another type)
My kernel ring puffer is flooded with two interesting types of messages and that is why I wanted to ask if these indicate "normal" behaviour or not.
(1) PCI related messages to and fro all over the time
[ 872.134559] ath10k_pci 0000:02:00.0: pci ps sleep refcount 1 awake 1
[ 872.134572] ath10k_pci 0000:02:00.0: pci ps wake refcount 0 awake 1
[ 872.134585] ath10k_pci 0000:02:00.0: pci ps sleep refcount 1 awake 1
[ 872.134598] ath10k_pci 0000:02:00.0: pci ps wake refcount 0 awake 1
[ 872.134614] ath10k_pci 0000:02:00.0: pci ps sleep refcount 1 awake 1
[ 872.134629] ath10k_pci 0000:02:00.0: pci ps wake refcount 0 awake 1
[ 872.134645] ath10k_pci 0000:02:00.0: pci ps sleep refcount 1 awake 1
[ 872.134657] ath10k_pci 0000:02:00.0: pci ps wake refcount 0 awake 1
[ 872.134670] ath10k_pci 0000:02:00.0: pci ps sleep refcount 1 awake 1
[ 872.195874] ath10k_pci 0000:02:00.0: pci ps timer refcount 0 awake 1
[ 872.195891] ath10k_pci 0000:02:00.0: pci ps sleep reg refcount 0 awake 1
[ 872.337625] ath10k_pci 0000:02:00.0: pci ps wake refcount 0 awake 0
[ 872.337644] ath10k_pci 0000:02:00.0: pci ps wake reg refcount 0 awake 0
[ 872.337707] ath10k_pci 0000:02:00.0: pci ps sleep refcount 1 awake 1
[ 872.337727] ath10k_pci 0000:02:00.0: pci ps wake refcount 0 awake 1
[ 872.337739] ath10k_pci 0000:02:00.0: pci ps sleep refcount 1 awake 1
[ 872.337749] ath10k_pci 0000:02:00.0: pci ps wake refcount 0 awake 1
[ 872.337758] ath10k_pci 0000:02:00.0: pci ps sleep refcount 1 awake 1
[ 872.337768] ath10k_pci 0000:02:00.0: pci ps wake refcount 0 awake 1
[ 872.337781] ath10k_pci 0000:02:00.0: pci ps sleep refcount 1 awake 1
[ 872.337791] ath10k_pci 0000:02:00.0: pci ps wake refcount 0 awake 1
...
(2) Many FCS (frame check sequence) errors paired with "len 0"?
[ 872.338194] ath10k_pci 0000:02:00.0: rx skb ffff88003765ec00 len 0 peer 00:XX:XX:XX:XX:88 mcast sn 1470 legacy rate_idx 0 vht_nss 0 freq 2447 band 0 flag 0x1200020 fcs-err 1 mic-err 0 amsdu-more 0
[ 872.952364] ath10k_pci 0000:02:00.0: rx skb ffff880011356400 len 0 peer 00:XX:XX:XX:XX:88 mcast sn 1476 legacy rate_idx 0 vht_nss 0 freq 2447 band 0 flag 0x1200020 fcs-err 1 mic-err 0 amsdu-more 0
[ 873.259564] ath10k_pci 0000:02:00.0: rx skb ffff88001ce2fd00 len 0 peer 00:XX:XX:XX:XX:88 mcast sn 1479 legacy rate_idx 0 vht_nss 0 freq 2447 band 0 flag 0x1200020 fcs-err 1 mic-err 0 amsdu-more 0
[ 874.181195] ath10k_pci 0000:02:00.0: rx skb ffff88004b26be00 len 0 peer 00:XX:XX:XX:XX:88 mcast sn 1488 legacy rate_idx 0 vht_nss 0 freq 2447 band 0 flag 0x1200020 fcs-err 1 mic-err 0 amsdu-more 0
[ 874.488037] ath10k_pci 0000:02:00.0: rx skb ffff88004b26bb00 len 0 peer 00:XX:XX:XX:XX:88 mcast sn 1491 legacy rate_idx 0 vht_nss 0 freq 2447 band 0 flag 0x1200020 fcs-err 1 mic-err 0 amsdu-more 0
[ 874.795505] ath10k_pci 0000:02:00.0: rx skb ffff880037856e00 len 0 peer 00:XX:XX:XX:XX:88 mcast sn 1496 legacy rate_idx 0 vht_nss 0 freq 2447 band 0 flag 0x1200020 fcs-err 1 mic-err 0 amsdu-more 0
...
(3) Some probably (?) ordinary messages in minority like
[ 873.566518] ath10k_pci 0000:02:00.0: pci rx ce pipe 5 len 60
[ 873.566529] ath10k_pci 0000:02:00.0: htt rx, msg_type: 0x1
...
I would really appreciate if someone could just confirm whether the debug messages hint to firmware/driver issues or not. Thanks for your help!
Some additional information:
- iwconfig wlp2s0 power off/off doesn't change a lot, the same messages from above keep appearing
- PCI related (lspci -vv):
02:00.0 Network controller: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter (rev 30)
Subsystem: AzureWave Device 2231
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 312
Region 0: Memory at 81000000 (64-bit, non-prefetchable) [size=2M]
Capabilities: [40] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [50] MSI: Enable+ Count=1/8 Maskable+ 64bit-
Address: fee0f00c Data: 4143
Masking: 000000fe Pending: 00000000
Capabilities: [70] Express (v2) Endpoint, MSI 00
DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 <64us
ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 10.000W
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 512 bytes
DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <4us, L1 <64us
ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
LnkCtl: ASPM L0s L1 Enabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Not Supported, TimeoutDis+, LTR+, OBFF Via message
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
Capabilities: [100 v2] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
Capabilities: [148 v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed- WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
Status: NegoPending- InProgress-
Capabilities: [168 v1] Device Serial Number 00-00-00-00-00-00-00-00
Capabilities: [178 v1] Latency Tolerance Reporting
Max snoop latency: 15360ns
Max no snoop latency: 15360ns
Capabilities: [180 v1] L1 PM Substates
L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
PortCommonModeRestoreTime=50us PortTPowerOnTime=10us
L1SubCtl1: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+
T_CommonMode=0us LTR1.2_Threshold=163840ns
L1SubCtl2: T_PwrOn=10us
Kernel driver in use: ath10k_pci
Kernel modules: ath10k_pci
- Some ethtool statistics (ethtool -S <device>):
NIC statistics:
rx_packets: 92152
rx_bytes: 55156501
rx_duplicates: 74
rx_fragments: 65368
rx_dropped: 421
tx_packets: 19775
tx_bytes: 2283053
tx_filtered: 0
tx_retry_failed: 31
tx_retries: 0
sta_state: 4
txrate: 1000000
rxrate: 54000000
signal: 185
channel: 2447
noise: 18446744073709551615
ch_time: 18446744073709551615
ch_time_busy: 18446744073709551615
ch_time_ext_busy: 18446744073709551615
ch_time_rx: 18446744073709551615
ch_time_tx: 18446744073709551615
tx_pkts_nic: 36194
tx_bytes_nic: 0
rx_pkts_nic: 52893
rx_bytes_nic: 0
d_noise_floor: 18446744073709551503
d_cycle_count: 3234369886
d_phy_error: 8
d_rts_bad: 0
d_rts_good: 0
d_tx_power: 38
d_rx_crc_err: 0
d_no_beacon: 0
d_tx_mpdus_queued: 20978
d_tx_msdu_queued: 20978
d_tx_msdu_dropped: 0
d_local_enqued: 1205
d_local_freed: 1205
d_tx_ppdu_hw_queued: 36194
d_tx_ppdu_reaped: 36194
d_tx_fifo_underrun: 0
d_tx_ppdu_abort: 0
d_tx_mpdu_requed: 15216
d_tx_excessive_retries: 15247
d_tx_hw_rate: 0
d_tx_dropped_sw_retries: 0
d_tx_illegal_rate: 0
d_tx_continuous_xretries: 0
d_tx_timeout: 0
d_tx_mpdu_txop_limit: 0
d_pdev_resets: 3
d_rx_mid_ppdu_route_change: 0
d_rx_status: 83552
d_rx_extra_frags_ring0: 0
d_rx_extra_frags_ring1: 43
d_rx_extra_frags_ring2: 6
d_rx_extra_frags_ring3: 0
d_rx_msdu_htt: 52894
d_rx_mpdu_htt: 52893
d_rx_msdu_stack: 26796
d_rx_mpdu_stack: 26796
d_rx_phy_err: 0
d_rx_phy_err_drops: 2
d_rx_mpdu_errors: 18097
d_fw_crash_count: 0
d_fw_warm_reset_count: 3
d_fw_cold_reset_count: 3
- firmware (ethtool -i <device>)
driver: ath10k_pci
version: 4.9.11-1-ARCH
firmware-version: WLAN.TF.1.0-00267-1
expansion-rom-version:
bus-info: 0000:02:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
- modinfo ath10k_core
filename: /lib/modules/4.9.11-1-ARCH/kernel/drivers/net/wireless/ath/ath10k/ath10k_core.ko.gz
license: Dual BSD/GPL
description: Core module for Qualcomm Atheros 802.11ac wireless LAN cards.
author: Qualcomm Atheros
depends: mac80211,cfg80211,ath
vermagic: 4.9.11-ARCH SMP preempt mod_unload modversions
parm: debug_mask:Debugging mask (uint)
parm: uart_print:Uart target debugging (bool)
parm: skip_otp:Skip otp failure for calibration in testmode (bool)
parm: cryptmode:Crypto mode: 0-hardware, 1-software (uint)
parm: rawmode:Use raw 802.11 frame datapath (bool)
- modinfo ath10k_pci
filename: /lib/modules/4.9.11-1-ARCH/kernel/drivers/net/wireless/ath/ath10k/ath10k_pci.ko.gz
firmware: ath10k/QCA9377/hw1.0/board.bin
firmware: ath10k/QCA9377/hw1.0/firmware-5.bin
firmware: ath10k/QCA6174/hw3.0/board-2.bin
firmware: ath10k/QCA6174/hw3.0/board.bin
firmware: ath10k/QCA6174/hw3.0/firmware-5.bin
firmware: ath10k/QCA6174/hw3.0/firmware-4.bin
firmware: ath10k/QCA6174/hw2.1/board-2.bin
firmware: ath10k/QCA6174/hw2.1/board.bin
firmware: ath10k/QCA6174/hw2.1/firmware-5.bin
firmware: ath10k/QCA6174/hw2.1/firmware-4.bin
firmware: ath10k/QCA9887/hw1.0/board-2.bin
firmware: ath10k/QCA9887/hw1.0/board.bin
firmware: ath10k/QCA9887/hw1.0/firmware-5.bin
firmware: ath10k/QCA988X/hw2.0/board-2.bin
firmware: ath10k/QCA988X/hw2.0/board.bin
firmware: ath10k/QCA988X/hw2.0/firmware-5.bin
firmware: ath10k/QCA988X/hw2.0/firmware-4.bin
firmware: ath10k/QCA988X/hw2.0/firmware-3.bin
firmware: ath10k/QCA988X/hw2.0/firmware-2.bin
license: Dual BSD/GPL
description: Driver support for Qualcomm Atheros 802.11ac WLAN PCIe/AHB devices
author: Qualcomm Atheros
alias: pci:v0000168Cd00000050sv*sd*bc*sc*i*
alias: pci:v0000168Cd00000042sv*sd*bc*sc*i*
alias: pci:v0000168Cd00000046sv*sd*bc*sc*i*
alias: pci:v0000168Cd00000056sv*sd*bc*sc*i*
alias: pci:v0000168Cd00000040sv*sd*bc*sc*i*
alias: pci:v0000168Cd0000003Esv*sd*bc*sc*i*
alias: pci:v0000168Cd00000041sv*sd*bc*sc*i*
alias: pci:v0000168Cd0000003Csv*sd*bc*sc*i*
depends: ath10k_core
vermagic: 4.9.11-ARCH SMP preempt mod_unload modversions
parm: irq_mode:0: auto, 1: legacy, 2: msi (default: 0) (uint)
parm: reset_mode:0: auto, 1: warm only (default: 0) (uint)
Sincerely yours,
Tobias
[1] https://wiki.archlinux.org/index.php/Compile_kernel_module
[2] https://wireless.wiki.kernel.org/en/users/drivers/ath10k/debug (I introduced 0xffffff3f as value for debug_mask via the sysfs interface)
--
Tobias Predel
currently studying Transportation Engineering B.Sc.
at Stuttgart University
More information about the ath10k
mailing list