Johannes Berg <johannes@xxxxxxxxxxxxxxxx> 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@xxxxxxxxxx> >> >> 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