Need to get msdu-chaining working.

Ben Greear greearb at
Thu Feb 27 20:18:34 EST 2014

On 02/26/2014 10:51 PM, Michal Kazior wrote:

>>From what I understand chained msdu is a msdu that hasn't fit into the
> rx buffer and is split across the popped amsdu list. I suspect only
> the first msdu in chain has the htt_rx_desc and all other have not
> (this is what the current code does, but you'll need to verify that).
> I would try to concatenate all msdus into one (lots of memcpy :( ) or
> increase the HTT_RX_BUF_SIZE so that A-MSDU frames can fit into a
> single buffer (hopefully FW/HW is capable of doing that).

I got this working, basically using memcpy approach.

Throughput is comparable what I was seeing on stock firmware,
but I do notice an issue:

The reported rx speed is almost always 6Mbps when I drive at high speeds.

(At low speeds I see rx rate reported at 1.3Gbps most of the time.)

I am pretty sure this is related to the msdu-chaining somehow.

There are lots of FIXME's in the ath10k_htt_rx_amsdu_pop method.

Any idea where the rx rate problem might lie?


Ben Greear <greearb at>
Candela Technologies Inc

More information about the ath10k mailing list