mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-27 16:39:08 +00:00
Add ALQ beacon debugging.
This commit is contained in:
parent
5086df9f1f
commit
370f81fab6
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=250619
@ -3058,6 +3058,11 @@ ath_bstuck_proc(void *arg, int pending)
|
|||||||
if (ath_hal_gethangstate(sc->sc_ah, 0xff, &hangs) && hangs != 0)
|
if (ath_hal_gethangstate(sc->sc_ah, 0xff, &hangs) && hangs != 0)
|
||||||
if_printf(ifp, "bb hang detected (0x%x)\n", hangs);
|
if_printf(ifp, "bb hang detected (0x%x)\n", hangs);
|
||||||
|
|
||||||
|
#ifdef ATH_DEBUG_ALQ
|
||||||
|
if (if_ath_alq_checkdebug(&sc->sc_alq, ATH_ALQ_STUCK_BEACON))
|
||||||
|
if_ath_alq_post(&sc->sc_alq, ATH_ALQ_STUCK_BEACON, 0, NULL);
|
||||||
|
#endif
|
||||||
|
|
||||||
if_printf(ifp, "stuck beacon; resetting (bmiss count %u)\n",
|
if_printf(ifp, "stuck beacon; resetting (bmiss count %u)\n",
|
||||||
sc->sc_bmisscount);
|
sc->sc_bmisscount);
|
||||||
sc->sc_stats.ast_bstuck++;
|
sc->sc_stats.ast_bstuck++;
|
||||||
|
@ -99,6 +99,20 @@ struct if_ath_alq_interrupt {
|
|||||||
uint32_t intr_syncstate;
|
uint32_t intr_syncstate;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define ATH_ALQ_MIB_COUNTERS 11
|
||||||
|
struct if_ath_alq_mib_counters {
|
||||||
|
uint32_t valid;
|
||||||
|
uint32_t tx_busy;
|
||||||
|
uint32_t rx_busy;
|
||||||
|
uint32_t chan_busy;
|
||||||
|
uint32_t ext_chan_busy;
|
||||||
|
uint32_t cycle_count;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define ATH_ALQ_MISSED_BEACON 12
|
||||||
|
#define ATH_ALQ_STUCK_BEACON 13
|
||||||
|
#define ATH_ALQ_RESUME_BEACON 14
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* These will always be logged, regardless.
|
* These will always be logged, regardless.
|
||||||
*/
|
*/
|
||||||
|
@ -399,6 +399,11 @@ ath_beacon_miss(struct ath_softc *sc)
|
|||||||
hangs);
|
hangs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ATH_DEBUG_ALQ
|
||||||
|
if (if_ath_alq_checkdebug(&sc->sc_alq, ATH_ALQ_MISSED_BEACON))
|
||||||
|
if_ath_alq_post(&sc->sc_alq, ATH_ALQ_MISSED_BEACON, 0, NULL);
|
||||||
|
#endif
|
||||||
|
|
||||||
DPRINTF(sc, ATH_DEBUG_BEACON,
|
DPRINTF(sc, ATH_DEBUG_BEACON,
|
||||||
"%s: valid=%d, txbusy=%u, rxbusy=%u, chanbusy=%u, "
|
"%s: valid=%d, txbusy=%u, rxbusy=%u, chanbusy=%u, "
|
||||||
"extchanbusy=%u, cyclecount=%u\n",
|
"extchanbusy=%u, cyclecount=%u\n",
|
||||||
@ -451,6 +456,10 @@ ath_beacon_proc(void *arg, int pending)
|
|||||||
"%s: resume beacon xmit after %u misses\n",
|
"%s: resume beacon xmit after %u misses\n",
|
||||||
__func__, sc->sc_bmisscount);
|
__func__, sc->sc_bmisscount);
|
||||||
sc->sc_bmisscount = 0;
|
sc->sc_bmisscount = 0;
|
||||||
|
#ifdef ATH_DEBUG_ALQ
|
||||||
|
if (if_ath_alq_checkdebug(&sc->sc_alq, ATH_ALQ_RESUME_BEACON))
|
||||||
|
if_ath_alq_post(&sc->sc_alq, ATH_ALQ_RESUME_BEACON, 0, NULL);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sc->sc_stagbeacons) { /* staggered beacons */
|
if (sc->sc_stagbeacons) { /* staggered beacons */
|
||||||
|
Loading…
Reference in New Issue
Block a user