svn commit: r263454 - head/sys/dev/ath

Adrian Chadd adrian at FreeBSD.org
Thu Mar 20 23:16:59 UTC 2014


Author: adrian
Date: Thu Mar 20 23:16:58 2014
New Revision: 263454
URL: http://svnweb.freebsd.org/changeset/base/263454

Log:
  Throw the flush messages behind ATH_DEBUG_RESET as well.
  
  These are needed to diagnose TX hangs that I and hiren are seeing.
  Without it, the only way we'll see debugging is by having ATH_DEBUG_SW_TX
  enabled and that is going to be very, very spammy.
  
  ATH_DEBUG_RESET is fine; it's only going to be done during stuck beacon
  situations in AP mode.
  
  Whilst I'm here, and now that it's behind debugging, let's just disable
  the "print only one" conditional.  I'll eventually make it more tunable.
  
  Tested:
  
  * AR9220, hostap mode.

Modified:
  head/sys/dev/ath/if_ath_tx.c

Modified: head/sys/dev/ath/if_ath_tx.c
==============================================================================
--- head/sys/dev/ath/if_ath_tx.c	Thu Mar 20 22:38:13 2014	(r263453)
+++ head/sys/dev/ath/if_ath_tx.c	Thu Mar 20 23:16:58 2014	(r263454)
@@ -3719,7 +3719,7 @@ ath_tx_tid_drain_print(struct ath_softc 
 	txq = sc->sc_ac2q[tid->ac];
 	tap = ath_tx_get_tx_tid(an, tid->tid);
 
-	DPRINTF(sc, ATH_DEBUG_SW_TX,
+	DPRINTF(sc, ATH_DEBUG_SW_TX | ATH_DEBUG_RESET,
 	    "%s: %s: %6D: bf=%p: addbaw=%d, dobaw=%d, "
 	    "seqno=%d, retry=%d\n",
 	    __func__,
@@ -3731,7 +3731,7 @@ ath_tx_tid_drain_print(struct ath_softc 
 	    bf->bf_state.bfs_dobaw,
 	    SEQNO(bf->bf_state.bfs_seqno),
 	    bf->bf_state.bfs_retries);
-	DPRINTF(sc, ATH_DEBUG_SW_TX,
+	DPRINTF(sc, ATH_DEBUG_SW_TX | ATH_DEBUG_RESET,
 	    "%s: %s: %6D: bf=%p: txq[%d] axq_depth=%d, axq_aggr_depth=%d\n",
 	    __func__,
 	    pfx,
@@ -3741,7 +3741,7 @@ ath_tx_tid_drain_print(struct ath_softc 
 	    txq->axq_qnum,
 	    txq->axq_depth,
 	    txq->axq_aggr_depth);
-	DPRINTF(sc, ATH_DEBUG_SW_TX,
+	DPRINTF(sc, ATH_DEBUG_SW_TX | ATH_DEBUG_RESET,
 	    "%s: %s: %6D: bf=%p: tid txq_depth=%d hwq_depth=%d, bar_wait=%d, "
 	      "isfiltered=%d\n",
 	    __func__,
@@ -3753,7 +3753,7 @@ ath_tx_tid_drain_print(struct ath_softc 
 	    tid->hwq_depth,
 	    tid->bar_wait,
 	    tid->isfiltered);
-	DPRINTF(sc, ATH_DEBUG_SW_TX,
+	DPRINTF(sc, ATH_DEBUG_SW_TX | ATH_DEBUG_RESET,
 	    "%s: %s: %6D: tid %d: "
 	    "sched=%d, paused=%d, "
 	    "incomp=%d, baw_head=%d, "
@@ -3813,7 +3813,7 @@ ath_tx_tid_drain(struct ath_softc *sc, s
 
 		if (t == 0) {
 			ath_tx_tid_drain_print(sc, an, "norm", tid, bf);
-			t = 1;
+//			t = 1;
 		}
 
 		ATH_TID_REMOVE(tid, bf, bf_list);
@@ -3829,7 +3829,7 @@ ath_tx_tid_drain(struct ath_softc *sc, s
 
 		if (t == 0) {
 			ath_tx_tid_drain_print(sc, an, "filt", tid, bf);
-			t = 1;
+//			t = 1;
 		}
 
 		ATH_TID_FILT_REMOVE(tid, bf, bf_list);


More information about the svn-src-all mailing list