Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Mar 2012 23:50:34 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r233480 - head/sys/dev/ath
Message-ID:  <201203252350.q2PNoYRw004759@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Sun Mar 25 23:50:34 2012
New Revision: 233480
URL: http://svn.freebsd.org/changeset/base/233480

Log:
  Add some more debugging to try and nail down exactly what's going on when
  I see traffic stalls.
  
  It turns out that the bug isn't because the first and last frame in the
  BAW is in the software queue.  It is more likely that it's because
  the first frame in the BAW is still in the software queue and thus there's
  no more room to allocate and do subsequent TX.
  
  PR:		kern/166357

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	Sun Mar 25 21:54:36 2012	(r233479)
+++ head/sys/dev/ath/if_ath_tx.c	Sun Mar 25 23:50:34 2012	(r233480)
@@ -2357,6 +2357,7 @@ ath_tx_xmit_aggr(struct ath_softc *sc, s
 	/* paused? queue */
 	if (tid->paused) {
 		ATH_TXQ_INSERT_TAIL(tid, bf, bf_list);
+		/* XXX don't sched - we're paused! */
 		return;
 	}
 
@@ -2647,13 +2648,19 @@ ath_tx_tid_drain(struct ath_softc *sc, s
 		if (t == 0) {
 			device_printf(sc->sc_dev,
 			    "%s: node %p: bf=%p: addbaw=%d, dobaw=%d, "
-			    "seqno_assign=%d, seqno_required=%d, seqno=%d\n",
+			    "seqno_assign=%d, seqno_required=%d, seqno=%d, retry=%d\n",
 			    __func__, ni, bf,
 			    bf->bf_state.bfs_addedbaw,
 			    bf->bf_state.bfs_dobaw,
 			    bf->bf_state.bfs_need_seqno,
 			    bf->bf_state.bfs_seqno_assigned,
-			    SEQNO(bf->bf_state.bfs_seqno));
+			    SEQNO(bf->bf_state.bfs_seqno),
+			    bf->bf_state.bfs_retries);
+			device_printf(sc->sc_dev,
+			    "%s: node %p: bf=%p: tid txq_depth=%d hwq_depth=%d\n",
+			    __func__, ni, bf,
+			    tid->axq_depth,
+			    tid->hwq_depth);
 			device_printf(sc->sc_dev,
 			    "%s: node %p: bf=%p: tid %d: txq_depth=%d, "
 			    "txq_aggr_depth=%d, sched=%d, paused=%d, "



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201203252350.q2PNoYRw004759>