On Fri, 2021-05-07 at 11:48 +0200, Toke Høiland-Jørgensen wrote: > This switches the airtime scheduler in mac80211 to use a virtual time-based Generally, we prefer <=72 columns in commit messages ... I started reformatting, but then your code also has a lot of places that go over 80 columns, so I gave up ... Can you please do that? Some refactoring, e.g. in sta_apply_parameters(), may also be in order. > +/** > + * struct airtime_sched_info - state used for airtime scheduling and AQL > + * > + * @lock: spinlock that protects all the fields in this struct > + * @active_txqs: rbtree of currently backlogged queues, sorted by virtual time > + * @schedule_pos: the current position maintained while a driver walks the tree > + * with ieee80211_next_txq() > + * @active_list: list of struct airtime_info structs that were active within > + * the last AIRTIME_ACTIVE_DURATION (100 ms), used to compute weight_sum > + * @last_weight_update: used for rate limiting walking active_list > + * @last_schedule_time: tracks the last time a transmission was scheduled; used > + * for catching up v_t if no stations are eligible for transmission. > + * @v_t: global virtual time; queues with v_t < this are eligible for transmission > + * @weight_sum: total sum of all active stations used for dividing airtime > + * @weight_sum_reciprocal: reciprocal of weight_sum (to avoid divisions in fast > + * path - see comment above IEEE80211_RECIPROCAL_DIVISOR_64) > + * @aql_txq_limit_low: AQL limit when total outstanding airtime is < IEEE80211_AQL_THRESHOLD > + * @aql_txq_limit_high: AQL limit when total outstanding airtime is > IEEE80211_AQL_THRESHOLD This is also needlessly way over. Thanks, johannes