summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2012-03-25 23:50:34 +0000
committeradrian <adrian@FreeBSD.org>2012-03-25 23:50:34 +0000
commit6abfad5150cb0a448c3eb6918d82fc2169985977 (patch)
tree6b6d53aeb92079d9a8785b338f78060c3dc7f9a9 /sys/dev
parent5582dc37431b1ccf3d2183079d886588fd1bb96f (diff)
downloadFreeBSD-src-6abfad5150cb0a448c3eb6918d82fc2169985977.zip
FreeBSD-src-6abfad5150cb0a448c3eb6918d82fc2169985977.tar.gz
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
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/ath/if_ath_tx.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/dev/ath/if_ath_tx.c b/sys/dev/ath/if_ath_tx.c
index 6944371..72e84cf 100644
--- a/sys/dev/ath/if_ath_tx.c
+++ b/sys/dev/ath/if_ath_tx.c
@@ -2357,6 +2357,7 @@ ath_tx_xmit_aggr(struct ath_softc *sc, struct ath_node *an, struct ath_buf *bf)
/* 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, struct ath_node *an,
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, "
OpenPOWER on IntegriCloud