freebsd-dev/sys/dev/ath
Adrian Chadd 6eb9f206a6 [ath] [ar9300] ensure the software scheduler is called to form more aggregates for EDMA chips
When investigating performance on UDP TX on the AR9380 I found that the
following sequence was occuring:

* INTR
* EINPROGRESS - nothing yet
* INTR
* TXSTATUS - process a TX completion for an aggregate
* INTR, INTR
* TXSTATUS - process a TX completion for an aggregate
* TXD, TXD ... populate frames from the hardware queue and submit

What should be happening is a completed TXSTATUS fires off more packets
that are queued on active TIDs.

What /was/ happening was after that first TXSTATUS the TX queue hardware queue
was still empty, so it didn't push anything into the FIFO.  Only after the
second TXSTATUS did any progress get made.

This is one of two commits - it ensures that the software TX queue scheduler
is called /after/ TX completion, otherwise no frames from the software staging
queues will be processed into the hardware queues.

The second commit will fix it so it populates aggregate frames correctly
when the above occurs - right now ath_txq_sched() is called, but it doesn't
populate anything because its pre-check conditions are wrong.

Whilst here, add/tweak debugging.

Tested:

* AR9380 STA (testing device) -> AR9580 hostap
2017-01-23 04:20:37 +00:00
..
ath_dfs/null dev/ath: minor spelling fixes in comments. 2016-05-02 19:56:48 +00:00
ath_hal [ath_hal] mad, mad hacks to get some semblence of correct HT/40 channels populated. 2017-01-05 04:56:04 +00:00
ath_rate [ath] [ath_hal] break out the duration calculation to optionally include SIFS. 2016-07-15 06:39:35 +00:00
ah_osdep.c [ath] remove the inline version of the register access macros. 2016-01-03 17:58:11 +00:00
ah_osdep.h [ath] remove the inline version of the register access macros. 2016-01-03 17:58:11 +00:00
if_ath_ahb.c
if_ath_alq.c
if_ath_alq.h [ath] add a placeholder event for debuggin EDMA TX FIFO push events. 2016-06-09 22:01:05 +00:00
if_ath_beacon.c [ath] revert the previous commit, after reading the 802.11-2012 spec a bit more. 2016-11-28 17:06:35 +00:00
if_ath_beacon.h
if_ath_btcoex_mci.c Fix kernel build. Improper definition location of a variable. 2016-06-02 01:59:41 +00:00
if_ath_btcoex_mci.h [ath] commit initial bluetooth coexistence support for the MCI NICs. 2016-06-02 00:51:36 +00:00
if_ath_btcoex.c [ath] remove now unused parameters. 2016-06-04 08:56:30 +00:00
if_ath_btcoex.h [ath] commit initial bluetooth coexistence support for the MCI NICs. 2016-06-02 00:51:36 +00:00
if_ath_debug.c
if_ath_debug.h [ath] add BTCOEX debug section; modify DPRINTF() to take a no-arg format string. 2016-05-31 04:09:17 +00:00
if_ath_descdma.c [ath] migrate ioctl and busdma memory operations out into separate source files. 2015-11-24 03:42:58 +00:00
if_ath_descdma.h [ath] migrate ioctl and busdma memory operations out into separate source files. 2015-11-24 03:42:58 +00:00
if_ath_ioctl.c [ath] Begin to lay the groundwork for btcoex related ioctl controls. 2016-11-27 18:34:29 +00:00
if_ath_ioctl.h [ath] migrate ioctl and busdma memory operations out into separate source files. 2015-11-24 03:42:58 +00:00
if_ath_keycache.c net80211 + drivers: convert to ieee80211_crypto_get_key_wepidx(). 2016-12-07 22:16:07 +00:00
if_ath_keycache.h
if_ath_led.c
if_ath_led.h
if_ath_lna_div.c dev/ath: minor spelling fixes in comments. 2016-05-02 19:56:48 +00:00
if_ath_lna_div.h
if_ath_misc.h [ath] force wake the hardware if we see a missed beacon. 2016-11-28 17:54:29 +00:00
if_ath_pci_devlist.h
if_ath_pci.c dev/ath: minor spelling fixes in comments. 2016-05-02 19:56:48 +00:00
if_ath_rx_edma.c [ath] don't debug RX EDMA descriptors that are not yet complete. 2016-06-17 17:01:32 +00:00
if_ath_rx_edma.h
if_ath_rx.c [ath] include logging of TU versions of the TSF values. 2016-11-28 02:51:55 +00:00
if_ath_rx.h
if_ath_spectral.c
if_ath_spectral.h
if_ath_sysctl.c [ath] report node queue overflows. 2016-06-09 21:59:36 +00:00
if_ath_sysctl.h
if_ath_tdma.c Fix improper use of "its". 2016-11-08 23:59:41 +00:00
if_ath_tdma.h
if_ath_tsf.h
if_ath_tx_edma.c [ath] [ar9300] ensure the software scheduler is called to form more aggregates for EDMA chips 2017-01-23 04:20:37 +00:00
if_ath_tx_edma.h
if_ath_tx_ht.c [ath] only apply the AR9300 delimiter workaround for the first sub-frame. 2017-01-22 05:45:42 +00:00
if_ath_tx_ht.h
if_ath_tx.c net80211: remove IEEE80211_RADIOTAP_TSFT field from transmit definitions. 2016-09-20 18:53:42 +00:00
if_ath_tx.h
if_ath.c ath: adapt LDPC support checks 2017-01-21 21:03:26 +00:00
if_athdfs.h
if_athioctl.h [ath] Begin to lay the groundwork for btcoex related ioctl controls. 2016-11-27 18:34:29 +00:00
if_athrate.h
if_athvar.h [ath] add a new buf flag, marking a buffer as involved with ToA/ToD positioning. 2016-07-08 22:20:35 +00:00