Historical ath9k-devel archives
 help / color / mirror / Atom feed
From: Felix Fietkau <nbd@nbd.name>
To: ath9k-devel@lists.ath9k.org
Subject: [ath9k-devel] [PATCH 1/2] ath9k: use mac80211 intermediate software queues
Date: Fri, 17 Jun 2016 15:28:26 +0200	[thread overview]
Message-ID: <30beabff-a8c6-5431-be09-8f2f83ffc974@nbd.name> (raw)
In-Reply-To: <20160617090929.31606-2-toke@toke.dk>

On 2016-06-17 11:09, Toke H?iland-J?rgensen wrote:
> This patch leaves the code for ath9k's internal per-node per-tid
> queues in place and just modifies the driver to also pull from
> the new mac80211 intermediate software queues, and implements
> the .wake_tx_queue method, which will cause mac80211 to deliver
> packets to be sent via the new intermediate queue.
> 
> Signed-off-by: Tim Shepard <shep@alum.mit.edu>
> 
> Reworked to not require the global variable renaming in ath9k.
> 
> Signed-off-by: Toke H?iland-J?rgensen <toke@toke.dk>
> ---
>  drivers/net/wireless/ath/ath9k/ath9k.h     |  16 +++-
>  drivers/net/wireless/ath/ath9k/debug_sta.c |   7 +-
>  drivers/net/wireless/ath/ath9k/init.c      |   1 +
>  drivers/net/wireless/ath/ath9k/main.c      |   1 +
>  drivers/net/wireless/ath/ath9k/xmit.c      | 119 +++++++++++++++++++++++++----
>  5 files changed, 125 insertions(+), 19 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
> index 93b3793..caeae10 100644
> --- a/drivers/net/wireless/ath/ath9k/ath9k.h
> +++ b/drivers/net/wireless/ath/ath9k/ath9k.h
> @@ -145,8 +145,6 @@ int ath_descdma_setup(struct ath_softc *sc, struct ath_descdma *dd,
>  #define BAW_WITHIN(_start, _bawsz, _seqno) \
>  	((((_seqno) - (_start)) & 4095) < (_bawsz))
>  
> -#define ATH_AN_2_TID(_an, _tidno)  (&(_an)->tid[(_tidno)])
> -
>  #define IS_HT_RATE(rate)   (rate & 0x80)
>  #define IS_CCK_RATE(rate)  ((rate >= 0x18) && (rate <= 0x1e))
>  #define IS_OFDM_RATE(rate) ((rate >= 0x8) && (rate <= 0xf))
> @@ -232,8 +230,10 @@ struct ath_buf {
>  
>  struct ath_atx_tid {
>  	struct list_head list;
> +	struct sk_buff_head i_q;
Do we really need a third queue here? Instead of adding yet another
layer of queueing here, I think we should even get rid of buf_q.

Channel context based queue handling can be dealt with by
stopping/starting relevant queues on channel context changes.

buf_q becomes unnecessary when you remove all code in the drv_tx
codepath that moves frames to the intermediate queue.

Any frame that was pulled from the intermediate queue and prepared for
tx, but which can't be sent right now can simply be queued to retry_q.

This will also help with getting the diffstat insertion/deletion ratio
under control ;)

>  	struct sk_buff_head buf_q;
>  	struct sk_buff_head retry_q;
> +	struct ieee80211_txq *swq;
No need for this pointer, you can use container_of.

- Felix

  reply	other threads:[~2016-06-17 13:28 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-17  9:09 [ath9k-devel] [PATCH 0/2] ath9k: Add airtime fairness scheduler Toke Høiland-Jørgensen
2016-06-17  9:09 ` [ath9k-devel] [PATCH 1/2] ath9k: use mac80211 intermediate software queues Toke Høiland-Jørgensen
2016-06-17 13:28   ` Felix Fietkau [this message]
2016-06-17 13:43     ` Toke Høiland-Jørgensen
2016-06-17 13:48       ` Felix Fietkau
2016-06-17 16:33         ` Felix Fietkau
2016-06-17 14:08     ` Tim Shepard
2016-06-17 14:35       ` Felix Fietkau
2016-06-17 17:45         ` Tim Shepard
2016-06-17 19:16           ` Toke Høiland-Jørgensen
2016-06-17 14:10     ` Dave Taht
2016-06-18 19:06   ` [ath9k-devel] [PATCH] ath9k: Switch to using " Toke Høiland-Jørgensen
2016-06-19  3:17     ` Tim Shepard
2016-06-19  8:52       ` Toke Høiland-Jørgensen
2016-06-19 13:40         ` Tim Shepard
2016-06-19 13:50           ` Toke Høiland-Jørgensen
2016-07-03  3:53     ` Tim Shepard
2016-07-04 17:47       ` Toke Høiland-Jørgensen
2016-07-06 13:23         ` Felix Fietkau
2016-07-06 14:46           ` Toke Høiland-Jørgensen
2016-07-06 16:17     ` [ath9k-devel] [PATCH v2] " Toke Høiland-Jørgensen
2016-07-06 18:13       ` Felix Fietkau
2016-07-06 18:52         ` Toke Høiland-Jørgensen
2016-07-06 18:59           ` Felix Fietkau
2016-07-06 19:08             ` Toke Høiland-Jørgensen
2016-07-06 18:19       ` Sebastian Gottschall
2016-07-06 19:38       ` [ath9k-devel] [PATCH v3] " Toke Høiland-Jørgensen
2016-07-08 14:26         ` [ath9k-devel] [v3] " Kalle Valo
2016-07-08 15:53           ` Toke Høiland-Jørgensen
2016-07-08 16:10             ` Felix Fietkau
2016-07-08 16:28               ` Toke Høiland-Jørgensen
2016-07-08 16:31                 ` Felix Fietkau
2016-07-08 16:38                   ` Toke Høiland-Jørgensen
2016-07-08 18:24                   ` Sebastian Gottschall
2016-07-09 12:00                     ` Toke Høiland-Jørgensen
2016-07-08 16:38         ` [ath9k-devel] [PATCH v3] " Tim Shepard
2016-07-09 15:45           ` Toke Høiland-Jørgensen
2016-08-05 16:05         ` [ath9k-devel] [PATCH v4] " Toke Høiland-Jørgensen
2016-08-22 15:43           ` Kalle Valo
2016-08-22 16:16             ` Toke Høiland-Jørgensen
2016-08-22 17:02               ` Kalle Valo
2016-08-22 17:13                 ` Toke Høiland-Jørgensen
2016-08-23  6:59                   ` Kalle Valo
2016-08-23  8:58                     ` Arend van Spriel
2016-10-05 14:09                     ` Toke Høiland-Jørgensen
2016-10-05 15:50                       ` Kalle Valo
2016-10-05 16:55                         ` Toke Høiland-Jørgensen
2016-10-05 17:54                           ` Kalle Valo
2016-10-05 19:56                             ` Toke Høiland-Jørgensen
2016-06-17  9:09 ` [ath9k-devel] [PATCH 2/2] ath9k: Add a per-station airtime deficit scheduler Toke Høiland-Jørgensen

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

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

  git send-email \
    --in-reply-to=30beabff-a8c6-5431-be09-8f2f83ffc974@nbd.name \
    --to=nbd@nbd.name \
    --cc=ath9k-devel@lists.ath9k.org \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).