All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] ath9k: Add airtime fairness scheduler
@ 2016-06-17  9:09 ` Toke Høiland-Jørgensen
  0 siblings, 0 replies; 118+ messages in thread
From: Toke Høiland-Jørgensen @ 2016-06-17  9:09 UTC (permalink / raw)
  To: linux-wireless, make-wifi-fast, ath9k-devel
  Cc: Toke Høiland-Jørgensen

This is the second version of my airtime fairness patch. This version
has a somewhat reworked scheduler (now closer to the structure of
fq_codel) and a different way to measure RX airtime; and there's a
debugfs entry to control which airtime measurements to include in the
scheduling decisions. For a simple one-way UDP test, the scheduler
achieves pretty much perfect airtime share (by its own measure). There's
not much throughput difference in the UDP case, but TCP tests see a
moderate improvement. I'll write up something more detailed on the
performance measures over the weekend and post it in a separate mail.

This patch set is rebased to mac80211-next - which means it no longer
includes Michal's patch to disable qdiscs. I have retained my version of
Tim's patch to make ath9k use wake_tx_queue in this patch set. That
probably needs some work still, but I believe he is working on that. I
have not tested extensively with the mac80211 FQ-CoDel patches enabled,
but I expect them to be complementary to this.

Changes since the RFC version:

- The scheduler will now enforce fairness harder. The previous version
  would refill the deficit of slow stations too fast in some cases.

- Change the way RX airtime is measured. For aggregates, the airtime is
  now calculated as the difference between the rs->rs_tstamp of the
  first and last frame in the aggregate. For non-aggregates, the
  previous calculation from the packet size is retained.

- There is now an 'airtime_flags' debugfs entry which can be used to
  control which airtime measures are accounted to the deficit. If bit 0
  is set, TX airtime will be accounted, and if bit 1 is set, RX airtime
  will. If no bits are set, the scheduler will revert to simple
  round-robin scheduling. The default is enabling both TX and RX.

- Squashed the whole thing into one patch and rebased to mac80211-next.

Toke Høiland-Jørgensen (2):
  ath9k: use mac80211 intermediate software queues
  ath9k: Add a per-station airtime deficit scheduler

 drivers/net/wireless/ath/ath9k/ath9k.h     |  34 +++-
 drivers/net/wireless/ath/ath9k/channel.c   |  12 +-
 drivers/net/wireless/ath/ath9k/debug.c     |   3 +
 drivers/net/wireless/ath/ath9k/debug.h     |  29 ++++
 drivers/net/wireless/ath/ath9k/debug_sta.c |  53 +++++-
 drivers/net/wireless/ath/ath9k/init.c      |   2 +
 drivers/net/wireless/ath/ath9k/main.c      |   7 +-
 drivers/net/wireless/ath/ath9k/recv.c      |  60 +++++++
 drivers/net/wireless/ath/ath9k/xmit.c      | 255 ++++++++++++++++++++++-------
 9 files changed, 386 insertions(+), 69 deletions(-)

-- 
2.8.3

^ permalink raw reply	[flat|nested] 118+ messages in thread

end of thread, other threads:[~2016-12-15  8:44 UTC | newest]

Thread overview: 118+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-17  9:09 [PATCH 0/2] ath9k: Add airtime fairness scheduler Toke Høiland-Jørgensen
2016-06-17  9:09 ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-06-17  9:09 ` [PATCH 1/2] ath9k: use mac80211 intermediate software queues Toke Høiland-Jørgensen
2016-06-17  9:09   ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-06-17 13:28   ` Felix Fietkau
2016-06-17 13:28     ` [ath9k-devel] " Felix Fietkau
2016-06-17 13:41     ` Tim Shepard
2016-06-17 14:08       ` [ath9k-devel] " Tim Shepard
2016-06-17 14:35       ` Felix Fietkau
2016-06-17 14:35         ` [ath9k-devel] " Felix Fietkau
2016-06-17 17:45         ` Tim Shepard
2016-06-17 17:45           ` [ath9k-devel] " Tim Shepard
2016-06-17 19:15           ` Toke Høiland-Jørgensen
2016-06-17 19:16             ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-06-17 13:43     ` Toke Høiland-Jørgensen
2016-06-17 13:43       ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-06-17 13:48       ` Felix Fietkau
2016-06-17 13:48         ` [ath9k-devel] " Felix Fietkau
2016-06-17 16:33         ` Felix Fietkau
2016-06-17 16:33           ` [ath9k-devel] " Felix Fietkau
2016-06-17 14:10     ` Dave Taht
2016-06-17 14:10       ` Dave Taht
2016-06-18 19:05   ` [PATCH] ath9k: Switch to using " Toke Høiland-Jørgensen
2016-06-18 19:06     ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-06-19  3:17     ` Tim Shepard
2016-06-19  3:17       ` [ath9k-devel] " Tim Shepard
2016-06-19  8:52       ` Toke Høiland-Jørgensen
2016-06-19  8:52         ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-06-19 13:39         ` Tim Shepard
2016-06-19 13:40           ` [ath9k-devel] " Tim Shepard
2016-06-19 13:50           ` Toke Høiland-Jørgensen
2016-06-19 13:50             ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-07-03  3:52     ` Tim Shepard
2016-07-03  3:53       ` [ath9k-devel] " Tim Shepard
2016-07-04 17:46       ` Toke Høiland-Jørgensen
2016-07-04 17:47         ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-07-06 13:23         ` Felix Fietkau
2016-07-06 13:23           ` [ath9k-devel] " Felix Fietkau
2016-07-06 14:45           ` Toke Høiland-Jørgensen
2016-07-06 14:46             ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-07-06 16:16     ` [PATCH v2] " Toke Høiland-Jørgensen
2016-07-06 16:17       ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-07-06 17:57       ` Sebastian Gottschall
2016-07-06 18:19         ` [ath9k-devel] " Sebastian Gottschall
2016-07-06 18:13       ` Felix Fietkau
2016-07-06 18:13         ` [ath9k-devel] " Felix Fietkau
2016-07-06 18:52         ` Toke Høiland-Jørgensen
2016-07-06 18:52           ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-07-06 18:59           ` Felix Fietkau
2016-07-06 18:59             ` [ath9k-devel] " Felix Fietkau
2016-07-06 19:08             ` Toke Høiland-Jørgensen
2016-07-06 19:08               ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-07-06 19:34       ` [PATCH v3] " Toke Høiland-Jørgensen
2016-07-06 19:38         ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-07-08 14:26         ` [v3] " Kalle Valo
2016-07-08 14:26           ` [ath9k-devel] " Kalle Valo
2016-07-08 15:53           ` Toke Høiland-Jørgensen
2016-07-08 15:53             ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-07-08 16:10             ` Felix Fietkau
2016-07-08 16:10               ` [ath9k-devel] " Felix Fietkau
2016-07-08 16:28               ` Toke Høiland-Jørgensen
2016-07-08 16:28                 ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-07-08 16:31                 ` Felix Fietkau
2016-07-08 16:31                   ` [ath9k-devel] " Felix Fietkau
2016-07-08 16:38                   ` Toke Høiland-Jørgensen
2016-07-08 16:38                     ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-07-08 18:24                   ` Sebastian Gottschall
2016-07-08 18:24                     ` [ath9k-devel] " Sebastian Gottschall
2016-07-09 12:00                     ` Toke Høiland-Jørgensen
2016-07-09 12:00                       ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-07-08 16:38         ` [PATCH v3] " Tim Shepard
2016-07-08 16:38           ` [ath9k-devel] " Tim Shepard
2016-07-09 15:44           ` Toke Høiland-Jørgensen
2016-07-09 15:45             ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-08-05 16:03         ` [PATCH v4] " Toke Høiland-Jørgensen
2016-08-05 16:05           ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-08-22 15:43           ` Kalle Valo
2016-08-22 15:43             ` [ath9k-devel] " Kalle Valo
2016-08-22 16:16             ` Toke Høiland-Jørgensen
2016-08-22 16:16               ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-08-22 17:02               ` Kalle Valo
2016-08-22 17:02                 ` [ath9k-devel] " Kalle Valo
2016-08-22 17:13                 ` Toke Høiland-Jørgensen
2016-08-22 17:13                   ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-08-23  6:59                   ` Kalle Valo
2016-08-23  6:59                     ` [ath9k-devel] " Kalle Valo
2016-08-23  8:52                     ` Arend van Spriel
2016-08-23  8:58                       ` [ath9k-devel] " Arend van Spriel
2016-10-05 14:02                     ` Toke Høiland-Jørgensen
2016-10-05 14:09                       ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-10-05 15:50                       ` Kalle Valo
2016-10-05 15:50                         ` [ath9k-devel] " Kalle Valo
2016-10-05 16:55                         ` Toke Høiland-Jørgensen
2016-10-05 16:55                           ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-10-05 17:54                           ` Kalle Valo
2016-10-05 17:54                             ` [ath9k-devel] " Kalle Valo
2016-10-05 19:56                             ` Toke Høiland-Jørgensen
2016-10-05 19:56                               ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-09-02 14:00           ` [PATCH v5] " Toke Høiland-Jørgensen
2016-09-03 10:16             ` Felix Fietkau
2016-10-07 11:43             ` [v5] " Kalle Valo
2016-11-09  2:22             ` Kalle Valo
2016-11-09  2:44               ` Tim Shepard
2016-11-09 10:42                 ` Toke Høiland-Jørgensen
2016-11-09 20:07                   ` Valo, Kalle
2016-11-09 11:31             ` [PATCH v6] " Toke Høiland-Jørgensen
2016-11-09 22:42               ` [v6] " Kalle Valo
2016-11-09 23:10                 ` Toke Høiland-Jørgensen
2016-11-15 15:00               ` Kalle Valo
2016-06-17  9:09 ` [PATCH 2/2] ath9k: Add a per-station airtime deficit scheduler Toke Høiland-Jørgensen
2016-06-17  9:09   ` [ath9k-devel] " Toke Høiland-Jørgensen
2016-11-24 13:54 ` [PATCH v2] ath9k: Introduce airtime fairness scheduling between stations Toke Høiland-Jørgensen
2016-11-25 15:16   ` Valo, Kalle
2016-11-27 15:58     ` Toke Høiland-Jørgensen
2016-11-28  9:34       ` Felix Fietkau
2016-11-28 10:00         ` Toke Høiland-Jørgensen
2016-11-28 10:12 ` [PATCH v3] " Toke Høiland-Jørgensen
2016-12-15  8:43   ` [v3] " Kalle Valo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.