[Make-wifi-fast] [PATCH RFC/RFT 1/4] mac80211: Rearrange ieee80211_tx_info to make room for tx_time_est

Toke Høiland-Jørgensen toke at redhat.com
Tue Oct 1 05:08:30 EDT 2019


Johannes Berg <johannes at sipsolutions.net> writes:

> Hi,
>
> Sorry for the long time to review here ...
>
> On Thu, 2019-09-19 at 14:22 +0200, Toke Høiland-Jørgensen wrote:
>> From: Toke Høiland-Jørgensen <toke at redhat.com>
>> 
>> To implement airtime queue limiting, we need to keep a running account of
>> the estimated airtime of all skbs queued into the device. Do to this
>> correctly, we need to store the airtime estimate into the skb so we can
>> decrease the outstanding balance when the skb is freed. This means that the
>> time estimate must be stored somewhere that will survive for the lifetime
>> of the skb.
>> 
>> Fortunately, we had a couple of bytes left in the 'status' field in the
>> ieee80211_tx_info; and since we only plan to calculate the airtime estimate
>> after the skb is dequeued from the FQ structure, on the control side we can
>> share the space with the codel enqueue time. And by rearranging the order
>> of elements it is possible to have the position of the new tx_time_est line
>> up between the control and status structs, so the value will survive from
>> when mac80211 hands the packet to the driver, and until the driver either
>> frees it, or hands it back through TX status.
>
> Seems reasonable to me, if we end up needing it and don't have an out-
> of-band path (that you seem to have been discussing in this long
> thread too)

Awesome! Any idea for how to make it work on big-endian systems? I got a
splat from the kbuild robot that triggered the BUILD_BUG_ON when
building for m68k. I assume it's the union with codel_time_t that ends
up being aligned wrong...

-Toke



More information about the Make-wifi-fast mailing list