[Make-wifi-fast] [PATCH v7] mac80211: Move reorder-sensitive TX handlers to after TXQ dequeue.
Toke Høiland-Jørgensen
toke at toke.dk
Mon Sep 5 12:06:20 EDT 2016
Toke Høiland-Jørgensen <toke at toke.dk> writes:
> The TXQ intermediate queues can cause packet reordering when more than
> one flow is active to a single station. Since some of the wifi-specific
> packet handling (notably sequence number and encryption handling) is
> sensitive to re-ordering, things break if they are applied before the
> TXQ.
>
> This splits up the TX handlers and fast_xmit logic into two parts: An
> early part and a late part. The former is applied before TXQ enqueue,
> and the latter after dequeue. The non-TXQ path just applies both parts
> at once.
>
> Because fragments shouldn't be split up or reordered, the fragmentation
> handler is run after dequeue. Any fragments are then kept in the TXQ and
> on subsequent dequeues they take precedence over dequeueing from the FQ
> structure.
>
> This approach avoids having to scatter special cases for when TXQ is
> enabled, at the cost of making the fast_xmit and TX handler code
> slightly more complex.
>
> Signed-off-by: Toke Høiland-Jørgensen <toke at toke.dk>
> ---
> Changes since v6:
> - Invoking the rate control handler can cause packets to be generated
> (for establishing a BA session). This can cause a deadlock because
> dequeue can happen while sta->lock is held. So this version moves
> the rate control handler back before the intermediate queue step.
> - Fix sequence number allocation on the slow path.
Attaching a version suitable for dropping into a LEDE build (where it
replaces 220-fq_disable_hack.patch and
346-mac80211-fix-sequence-number-assignment-for-PS-respo.patch).
-Toke
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 346-mac80211-move-reorder-sensitive-tx-handlers-to-after-TXQ-dequeue.patch
Type: text/x-diff
Size: 15216 bytes
Desc: not available
URL: <https://lists.bufferbloat.net/pipermail/make-wifi-fast/attachments/20160905/26d1ee7e/attachment.patch>
More information about the Make-wifi-fast
mailing list