(The make-wifi-fast list is annoying as it always spams me when it's on
CC, so dropped it.)

Toke Høiland-Jørgensen <[email protected]> writes:

> This reworks the ath9k driver to schedule transmissions to connected
> stations in a way that enforces airtime fairness between them. It
> accomplishes this by measuring the time spent transmitting to or
> receiving from a station at TX and RX completion, and accounting this to
> a per-station, per-QoS level airtime deficit. Then, an FQ-CoDel based
> deficit scheduler is employed at packet dequeue time, to control which
> station gets the next transmission opportunity.
>
> Airtime fairness can significantly improve the efficiency of the network
> when station rates vary. The following throughput values are from a
> simple three-station test scenario, where two stations operate at the
> highest HT20 rate, and one station at the lowest, and the scheduler is
> employed at the access point:
>
>                   Before   /   After
> Fast station 1:    19.17   /   25.09 Mbps
> Fast station 2:    19.83   /   25.21 Mbps
> Slow station:       2.58   /    1.77 Mbps
> Total:             41.58   /   52.07 Mbps
>
> The benefit of airtime fairness goes up the more stations are present.
> In a 30-station test with one station artificially limited to 1 Mbps,
> we have seen aggregate throughput go from 2.14 to 17.76 Mbps.
>
> Signed-off-by: Toke Høiland-Jørgensen <[email protected]>

[...]

> +void ath_acq_lock(struct ath_softc *sc, struct ath_acq *acq)
> +     __acquires(&acq->lock)
> +{
> +     spin_lock_bh(&acq->lock);
> +}
> +
> +void ath_acq_unlock(struct ath_softc *sc, struct ath_acq *acq)
> +     __releases(&acq->lock)
> +{
> +     spin_unlock_bh(&acq->lock);
> +}

Why these? To me it looks like they just add an extra function jump and
unneccessary extra layer.

-- 
Kalle Valo

Reply via email to