[Make-wifi-fast] [PATCH mac80211-next v8] mac80211: Switch to a virtual time-based airtime scheduler

Johannes Berg johannes at sipsolutions.net
Wed Jun 23 05:14:18 EDT 2021


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



More information about the Make-wifi-fast mailing list