Lets make wifi fast again!
 help / color / mirror / Atom feed
From: Luca Muscariello <luca.muscariello@gmail.com>
To: "Toke Høiland-Jørgensen" <toke@toke.dk>
Cc: "linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
	 "make-wifi-fast@lists.bufferbloat.net"
	<make-wifi-fast@lists.bufferbloat.net>,
	 "ath9k-devel@lists.ath9k.org" <ath9k-devel@lists.ath9k.org>
Subject: Re: [Make-wifi-fast] [RFC/RFT 0/5] Adding an airtime fairness scheduler to ath9k
Date: Sat, 4 Jun 2016 17:24:42 +0200	[thread overview]
Message-ID: <CAHx=1M4K5jx1__PtD1hXZcpTrqvULfEr2fd7KJ=0neYoBQQt3g@mail.gmail.com> (raw)
In-Reply-To: <20160603165144.17356-1-toke@toke.dk>

[-- Attachment #1: Type: text/plain, Size: 4221 bytes --]

Toke

I don't fully understand your plots but it would be useful to
report the  physical rate of the stations.
As a benchmark, if you know the physical rates assuming they are also
optimally chosen (by minstrel for instance ) and stations don't move, the
long term throughout can be computed ( e.g. for TCP ) assuming air time
fairness.
Than you can understand if your gain is what you should expect or if the
implementation is not yet done.

On Friday, 3 June 2016, Toke Høiland-Jørgensen <toke@toke.dk> wrote:

> This patch set is my first pass at attempting to add an airtime fairness
> enforcing scheduler to ath9k (for use in access point mode). For some
> background on this approach and its possible benefits see this paper:
> https://www.usenix.org/event/usenix04/tech/general/full_papers/tan/tan.pdf
>
> This is still very preliminary work, but I thought I'd post it for
> comment anyway. Tentatively, it's looking like it gives some
> improvement, but is by no means perfect in what it is achieving. See
>
> https://blog.tohojo.dk/2016/06/a-first-stab-at-an-airtime-fairness-scheduler-for-ath9k.html
> for some graphs of the patch set. I'm seeing roughly a 15% improvement
> in aggregate throughput in the presence of a slow station.
>
> To work, the scheduler needs per-station queueing, so this patch series
> also includes Michal's patch to not have qdiscs on the interface when
> wake_tx_queue is present, and Tim's patch to add wake_tx_queue to ath9k.
> The latter I reworked to not require the global variable renaming, since
> I found that change to be too confusing after having spent time getting
> used to the ath9k names for things (I put my own name on this commit and
> added a second Signed-off-by; apologies if this is not the right way to
> do things for this kind of rework).
>
> The scheduler patch set itself is in three parts: The first patch simply
> adds airtime accounting and exports it to a per-station debugfs file
> (which the latest git version of Flent knows how to read). The second
> patch adds the airtime scheduler using only the TX airtime information.
> Finally the third patch adds in RX airtime to the deficit used by the
> scheduler. This last part is not always a win (see the blog post linked
> above), but I haven't tested it extensively. So feel free to test with
> or without the last patch.
>
> There is some code duplication between the debugfs code and the
> scheduler which I haven't removed yet to be able to easily switch
> between having the scheduler use the airtime values and simply
> accounting them for debugging purposes.
>
> Comments and test results very welcome! :)
>
> -Toke
>
>
>
> Michal Kazior (1):
>   mac80211: skip netdev queue control with software queuing
>
> Toke Høiland-Jørgensen (4):
>   ath9k: use mac80211 intermediate software queues
>   ath9k: Add airstame stats to per-station debugfs
>   ath9k: Add a per-station airtime deficit scheduler
>   ath9k: Count RX airtime in airtime deficit.
>
>  drivers/net/wireless/ath/ath9k/ath9k.h     |  27 +++-
>  drivers/net/wireless/ath/ath9k/channel.c   |  12 +-
>  drivers/net/wireless/ath/ath9k/debug.h     |  29 ++++
>  drivers/net/wireless/ath/ath9k/debug_sta.c | 144 ++++++++++++++++++-
>  drivers/net/wireless/ath/ath9k/init.c      |   1 +
>  drivers/net/wireless/ath/ath9k/main.c      |   7 +-
>  drivers/net/wireless/ath/ath9k/recv.c      |  50 +++++++
>  drivers/net/wireless/ath/ath9k/xmit.c      | 222
> ++++++++++++++++++++++++-----
>  include/net/mac80211.h                     |   4 -
>  net/mac80211/ieee80211_i.h                 |   2 +-
>  net/mac80211/iface.c                       |  18 ++-
>  net/mac80211/main.c                        |   3 -
>  net/mac80211/sta_info.c                    |   2 +-
>  net/mac80211/tx.c                          |  82 ++++++-----
>  net/mac80211/util.c                        |  11 +-
>  15 files changed, 511 insertions(+), 103 deletions(-)
>
> --
> 2.7.4
> _______________________________________________
> Make-wifi-fast mailing list
> Make-wifi-fast@lists.bufferbloat.net <javascript:;>
> https://lists.bufferbloat.net/listinfo/make-wifi-fast
>

[-- Attachment #2: Type: text/html, Size: 5168 bytes --]

  parent reply	other threads:[~2016-06-04 15:24 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-03 16:51 Toke Høiland-Jørgensen
2016-06-03 16:51 ` [Make-wifi-fast] [RFC/RFT 1/5] mac80211: skip netdev queue control with software queuing Toke Høiland-Jørgensen
2016-06-06  2:26   ` Julian Calaby
2016-06-06 17:00     ` Toke Høiland-Jørgensen
2016-06-03 16:51 ` [Make-wifi-fast] [RFC/RFT 2/5] ath9k: use mac80211 intermediate software queues Toke Høiland-Jørgensen
2016-06-03 16:51 ` [Make-wifi-fast] [RFC/RFT 3/5] ath9k: Add airstame stats to per-station debugfs Toke Høiland-Jørgensen
2016-06-03 16:51 ` [Make-wifi-fast] [RFC/RFT 4/5] ath9k: Add a per-station airtime deficit scheduler Toke Høiland-Jørgensen
2016-06-03 16:51 ` [Make-wifi-fast] [RFC/RFT 5/5] ath9k: Count RX airtime in airtime deficit Toke Høiland-Jørgensen
2016-06-04 17:06   ` Adrian Chadd
2016-06-05 10:55     ` Toke Høiland-Jørgensen
2016-06-05 17:23       ` Adrian Chadd
2016-06-07  0:01         ` Adrian Chadd
2016-06-07  1:31           ` Jonathan Morton
2016-06-07  8:58           ` Toke Høiland-Jørgensen
2016-06-07 11:12             ` Toke Høiland-Jørgensen
2016-06-08  1:41               ` Adrian Chadd
2016-06-08 13:06                 ` Toke Høiland-Jørgensen
2016-06-10  8:40               ` Michal Kazior
2016-06-10  8:53                 ` Toke Høiland-Jørgensen
2016-06-10  9:02                   ` Michal Kazior
2016-06-10  9:08                     ` Toke Høiland-Jørgensen
2016-06-10  9:20                       ` Michal Kazior
2016-06-10  9:49                         ` Toke Høiland-Jørgensen
2016-06-10 15:33                           ` Toke Høiland-Jørgensen
2016-06-10 15:52                             ` Adrian Chadd
2016-06-04 15:24 ` Luca Muscariello [this message]
2016-06-05 10:51   ` [Make-wifi-fast] [RFC/RFT 0/5] Adding an airtime fairness scheduler to ath9k Toke Høiland-Jørgensen
2016-06-05 11:40     ` Luca Muscariello

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.bufferbloat.net/postorius/lists/make-wifi-fast.lists.bufferbloat.net/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAHx=1M4K5jx1__PtD1hXZcpTrqvULfEr2fd7KJ=0neYoBQQt3g@mail.gmail.com' \
    --to=luca.muscariello@gmail.com \
    --cc=ath9k-devel@lists.ath9k.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=make-wifi-fast@lists.bufferbloat.net \
    --cc=toke@toke.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox