On 26 May 2016 at 15:50, Toke Høiland-Jørgensen <toke@xxxxxxx> 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). Michał -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html