Ath9k wmac baseband watchdog

Hi All,

Could anyone kindly let me know why my APs (Ath9k) wmac baseband watchdog gets triggered as below when some clients roaming under these APs?

Tue May 19 03:36:24 2020 kern.debug kernel: [ 2477.270000] ath: phy0:
Tue May 19 03:36:24 2020 kern.debug kernel: [ 2477.270000] ==== BB update: BB status=0x04008009 ====
Tue May 19 03:36:24 2020 kern.debug kernel: [ 2477.270000] ath: phy0: ** BB state: wd=1 det=1 rdar=0 rOFDM=0 rCCK=8 tOFDM=0 tCCK=0 agc=4 src=0 **
Tue May 19 03:36:24 2020 kern.debug kernel: [ 2477.270000] ath: phy0: ** BB WD cntl: cntl1=0xffff0085 cntl2=0x00000004 **
Tue May 19 03:36:24 2020 kern.debug kernel: [ 2477.270000] ath: phy0: ** BB mode: BB_gen_controls=0x00003ac0 **
Tue May 19 03:36:24 2020 kern.debug kernel: [ 2477.270000] ath: phy0: ** BB busy times: rx_clear=2%, rx_frame=100%, tx_frame=0% **
Tue May 19 03:36:24 2020 kern.debug kernel: [ 2477.270000] ath: phy0: ==== BB update: done ====
Tue May 19 03:36:24 2020 kern.debug kernel: [ 2477.270000]
Tue May 19 03:36:24 2020 kern.debug kernel: [ 2477.270000] ath: phy0: BB_WATCHDOG: Skipping interrupts

My question is,
(1) what is the "BB status=0x04008009" standing for?
(2) BB busy times: rx_clear=2%, rx_frame=100%, tx_frame=0% ** Does it mean the rx frame is full? However the iPerf traffic is not not so high, only 3Mbps

Thanks in advance

Hi community, according to what I found that this issue is related with ANI as you could see below. especially it always happens during ccklevel turning from level 4 to 3. Any thought please kindly let me know. Thanks.

Wed May 20 21:34:38 2020 kern.debug kernel: [93890.950000] ath: phy0: listenTime=426 OFDM:0 errs=199/s CCK:4 errs=39/s ofdm_turn=1
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.950000] ath: phy0: **** ccklevel 4=>3, rssi=0[lo=7 hi=40]
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.950000] ath: phy0: ** ch 2437: level 4=>3[def:2] firstep[level]=10 ini=8
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.950000] ath: phy0: ** ch 2437: level 4=>3[def:2] firstep_low[level]=10 ini=8
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.950000] ath: phy0: ANI parameters: SI=0, ofdmWS=on FS=3 MRCcck=off listenTime=426 ofdmErrs=85 cckErrs=17
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.950000] ath: phy0: disable IER
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.950000] ath: phy0: ** ch 2437: MRC CCK: off=>on
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.950000] ath: phy0: ANI parameters: SI=0, ofdmWS=on FS=3 MRCcck=on listenTime=426 ofdmErrs=85 cckErrs=17
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.950000] ath: phy0: Calibration @9359095 finished:   ani, caldone: true
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.950000] ath: phy0: enable IER
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.950000] ath: phy0: AR_IMR 0x81810175 IER 0x1
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.950000] ath: phy0: slot: 3 tsf: 93861518064 tsftu: 91661638
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.960000] ath: phy0: slot: 4 tsf: 93861529666 tsftu: 91661650
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.970000] ath: phy0: disable IER
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.970000] ath: phy0: 
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.970000] ==== BB update: BB status=0x04008009 ====
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.970000] ath: phy0: ** BB state: wd=1 det=1 rdar=0 rOFDM=0 rCCK=8 tOFDM=0 tCCK=0 agc=4 src=0 **
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.970000] ath: phy0: ** BB WD cntl: cntl1=0xffff0085 cntl2=0x00000004 **
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.970000] ath: phy0: ** BB mode: BB_gen_controls=0x00003ac0 **
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.970000] ath: phy0: ** BB busy times: rx_clear=0%, rx_frame=100%, tx_frame=0% **
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.970000] ath: phy0: ==== BB update: done ====
Wed May 20 21:34:38 2020 kern.debug kernel: [93890.970000] 

I have disabled ANI and let it run under traffic around 3Mbps for about 20 hours, so far it seems there is no hit in base-band watchdog anymore. I am going to let it run even longer to see if it is consistent.

However just an another topic, I still want to bring ANI back. Could anyone kindly let me know how to improve ANI? I have compared my local ANI source code with the latest openwrt 19.07 and they are exactly the same. Any idea?