hi,

I've noticed something reasonably quirky with the AR9380 and later
EDMA engine and I'd like to see if anyone else has seen it with ath9k.

It /looks/ like the TXOP gating for burstTime (ie, WMM bursts) is
gated by a TX FIFO entry. Ie, if you queue 8 separate TX FIFO entries,
each with a single MPDU, then you end up only getting one frame per
burst window.

For TDMA it shows up as frames only going out every time I push new
frames into the FIFO. It's very .. odd.

Now, if I try /really hard/ to keep pushing groups of frames into the
FIFO (ie, a list of frames per TX FIFO slot) and I don't push a single
frame here and there in, I get reasonably consistent 30mbit
performance each way, which is what I'm expecting without A-MPDU or
A-MSDU aggregation.

But if I schedule say, 5 groups of 32 frames and then one frame, the
PCU/QCU doesn't seem to grant that queue any more airtime until I push
/another/ frame into the TX FIFO. Merely just hitting TXE for that
queue doesn't work - I have to push in more frames to keep it
immediately going rather than waiting for the next TXOP/gating time.

So, I have some local hacks that only push groups of X (where X is 16
atm) frames into TX FIFO slots to keep the engine happy and will only
push a shorter amount of frames into the TX FIFO if the FIFO itself is
empty. That gets the performance on part with TDMA on AR5416/AR9280,
which was the initial goal.

Ok, so with all of the above - has anyone seen this kind of behaviour
with ath9k? eg, doing lots of non-aggregate frames to some WMM burst
queue, like voice or video?

Thanks,

-adrian
_______________________________________________
ath9k-devel mailing list
ath9k-devel@lists.ath9k.org
https://lists.ath9k.org/mailman/listinfo/ath9k-devel

Reply via email to