Author: adrian
Date: Mon May 13 21:18:00 2013
New Revision: 250619
URL: http://svnweb.freebsd.org/changeset/base/250619

Log:
  Add ALQ beacon debugging.

Modified:
  head/sys/dev/ath/if_ath.c
  head/sys/dev/ath/if_ath_alq.h
  head/sys/dev/ath/if_ath_beacon.c

Modified: head/sys/dev/ath/if_ath.c
==============================================================================
--- head/sys/dev/ath/if_ath.c   Mon May 13 21:17:27 2013        (r250618)
+++ head/sys/dev/ath/if_ath.c   Mon May 13 21:18:00 2013        (r250619)
@@ -3058,6 +3058,11 @@ ath_bstuck_proc(void *arg, int pending)
        if (ath_hal_gethangstate(sc->sc_ah, 0xff, &hangs) && hangs != 0)
                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",
                sc->sc_bmisscount);
        sc->sc_stats.ast_bstuck++;

Modified: head/sys/dev/ath/if_ath_alq.h
==============================================================================
--- head/sys/dev/ath/if_ath_alq.h       Mon May 13 21:17:27 2013        
(r250618)
+++ head/sys/dev/ath/if_ath_alq.h       Mon May 13 21:18:00 2013        
(r250619)
@@ -99,6 +99,20 @@ struct if_ath_alq_interrupt {
        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.
  */

Modified: head/sys/dev/ath/if_ath_beacon.c
==============================================================================
--- head/sys/dev/ath/if_ath_beacon.c    Mon May 13 21:17:27 2013        
(r250618)
+++ head/sys/dev/ath/if_ath_beacon.c    Mon May 13 21:18:00 2013        
(r250619)
@@ -399,6 +399,11 @@ ath_beacon_miss(struct ath_softc *sc)
                    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,
            "%s: valid=%d, txbusy=%u, rxbusy=%u, chanbusy=%u, "
            "extchanbusy=%u, cyclecount=%u\n",
@@ -451,6 +456,10 @@ ath_beacon_proc(void *arg, int pending)
                        "%s: resume beacon xmit after %u misses\n",
                        __func__, sc->sc_bmisscount);
                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 */
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to