HomeFreeBSD

[ath] fix TX throughput for EDMA chips by pushing more into the TX FIFO.

Description

[ath] fix TX throughput for EDMA chips by pushing more into the TX FIFO.

It turns out that getting decent performance requires stacking the TX
FIFO a little more aggressively.

  • Ensure that when we complete a frame, we attempt to push a new frame into the FIFO so TX is kept as active as it needs to be
  • Be more aggressive about batching non-aggregate frames into a single TX FIFO slot. This "fixes" TDMA performance (since we only get one TX FIFO slot ungated per DMA beacon alert) but it does this by pushing a whole lot of work into the TX FIFO slot.

I'm not /entirely/ pleased by this solution, but it does fix a whole bunch
of corner case issues in the transmit side and fix TDMA whilst I'm at it.
I'll go revisit transmit packet scheduling in ath(4) post 11.

Tested:

  • AR9380, STA mode
  • AR9580, hostap mode
  • AR9380, TDMA client mode

Approved by: re (hrs)

Details

Provenance
adrianAuthored on
Parents
rS302059: Fix SVN mis-merge that slipped through.
Branches
Unknown
Tags
Unknown