svn commit: r225378 - user/adrian/if_ath_tx/sys/dev/ath
Adrian Chadd
adrian at FreeBSD.org
Sun Sep 4 14:58:58 UTC 2011
Author: adrian
Date: Sun Sep 4 14:58:57 2011
New Revision: 225378
URL: http://svn.freebsd.org/changeset/base/225378
Log:
A previous commit from me used the aggregate length for packet completion.
This made for some very bad performing 11n throughput because the rate
used for selection (ie, the first frame length) didn't match up with the
rate completion (ie, the aggregate length.)
For now, just use the frame length of the first frame. This results in
better throughput - which isn't 100% reliable, but it's better than what
I'm currently seeing.
Modified:
user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c
Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c
==============================================================================
--- user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c Sun Sep 4 14:55:51 2011 (r225377)
+++ user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c Sun Sep 4 14:58:57 2011 (r225378)
@@ -2741,10 +2741,13 @@ ath_tx_comp_aggr_error(struct ath_softc
/*
* Update rate control - all frames have failed.
+ *
+ * XXX use the length in the first frame in the series;
+ * XXX just so things are consistent for now.
*/
ath_tx_update_ratectrl(sc, ni, bf_first->bf_state.bfs_rc,
&bf_first->bf_status.ds_txstat,
- bf_first->bf_state.bfs_al,
+ bf_first->bf_state.bfs_pktlen,
bf_first->bf_state.bfs_nframes, bf_first->bf_state.bfs_nframes);
/* Retry all subframes */
@@ -2872,7 +2875,11 @@ ath_tx_aggr_comp_aggr(struct ath_softc *
* has been completed and freed.
*/
ts = bf_first->bf_status.ds_txstat;
- pktlen = bf_first->bf_state.bfs_al;
+ /*
+ * XXX for now, use the first frame in the aggregate for
+ * XXX rate control completion; it's at least consistent.
+ */
+ pktlen = bf_first->bf_state.bfs_pktlen;
/*
* handle errors first
More information about the svn-src-user
mailing list