[Make-wifi-fast] [RFC] ath9k: Measure per-station airtime usage

Michal Kazior michal.kazior at tieto.com
Mon May 30 08:35:37 EDT 2016

On 26 May 2016 at 15:50, Toke Høiland-Jørgensen <toke at toke.dk> wrote:
> This is my attempt to add per-station airtime usage accounting to ath9k.
> For now I just export it to a new debugfs entry, but my plan is to use
> it to make (station) scheduling decisions. However, before attempting
> that I would like some feedback from someone more familiar with the
> ath9k than me as to whether this way of measuring airtime usage is
> likely to give reasonable results.
> I realise that there's probably some things I'm missing, but an initial
> test run indicates that the values are at least in the right ballpark (I
> get a total of ~170k usecs of measured airtime per 200 ms sampling
> interval when running three simultaneous TCP streams to three different
> stations).
> So can anyone comment on whether I'm on the right track here? And
> possibly provide some more detail as to what I'm missing and how to
> remedy that?
> +void ath_debug_tx_airtime(struct ath_softc *sc,
> +                         struct ath_node *an,
> +                         struct ath_tx_status *ts)
> +{
> +       struct ath_airtime_stats *astats;
> +
> +       rcu_read_lock();
> +
> +       astats = &an->airtime_stats;
> +       astats->tx_airtime += ts->duration;

I'm not ath9k expert but this seems to be oblivious to tx retries. The
ts->duration is acquired from the last used tx rate for given frame.
Or am I missing something?

I think you should use ts->ts_rateindex and ts->ts_longretry to factor
in retries (see ath_tx_rc_status).


More information about the Make-wifi-fast mailing list