ath9k-devel.lists.ath9k.org archive mirror
 help / color / mirror / Atom feed
From: Tim Shepard <shep@alum.mit.edu>
To: ath9k-devel@lists.ath9k.org
Subject: [ath9k-devel] [PATCH v3] ath9k: Switch to using mac80211 intermediate software queues.
Date: Fri, 08 Jul 2016 16:38:24 -0000	[thread overview]
Message-ID: <E1bLYmw-0004wm-00@www.xplot.org> (raw)
In-Reply-To: Your message of Wed, 06 Jul 2016 21:34:17 +0200. <20160706193417.13080-1-toke@toke.dk>


> The old code path in ath_tx_start that would queue packets has been
> removed completely, 

It seems to me that this breaks the ath9k driver when non-data packets
which mac80211 will not queue on the new intermediate queues, see
ieee80211_drv_tx( ) in mac80211/tx.c where it says

	if (!ieee80211_is_data(hdr->frame_control))
		goto tx_normal;

This means that non-data packets can come down from mac80211 via
ath_tx --> ath_tx_start which might be for a vif that is not on the
same channel, and so cannot be sent straight away but must be queued.
Maybe this problem should be fixed in mac80211, but as of now this is
a problem.   It appears to me that your new patch just sends them on
the wrong channel.

Maybe I'm confused about something, hints appreciated.


> as has the qlen limit tunables (since there's no
> longer a queue in the driver to limit).

> diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
> index 5294595..daf972c 100644
> --- a/drivers/net/wireless/ath/ath9k/ath9k.h
> +++ b/drivers/net/wireless/ath/ath9k/ath9k.h
> @@ -91,7 +91,6 @@ int ath_descdma_setup(struct ath_softc *sc, struct ath_descdma *dd,
>  #define ATH_RXBUF               512
>  #define ATH_TXBUF               512
>  #define ATH_TXBUF_RESERVE       5
> -#define ATH_MAX_QDEPTH          (ATH_TXBUF / 4 - ATH_TXBUF_RESERVE)
>  #define ATH_TXMAXTRY            13
>  #define ATH_MAX_SW_RETRIES      30

I thought the purpose of ATH_MAX_QDEPTH was due to a limit on the
depth of a hardware FIFO.  Not all packets that get handed to the
hardware come through a software queue (e.g. those that bypass the
intermediate queueing in mac80211 now) and (it seems to me) there
needs to be a limit to prevent overflowing a hardware fifo.   Yes,
normal data packets are (much) further limited as you taught me a few
weeks ago, but not all packets are subject to that constraint (as far
as I can understand at the moment).   I'm not entirely sure of the
details, but I think it is the sorts of packets sent directly by
hostapd and wpa_supplicant that bypass all the queueing.  And maybe
those things aren't likely to be sending a burst of hundreds of
packets in a very short period of time (where it could overrun the
FIFO), but there may be other tools that send raw 802.11 non-data
packets which could then overflow the above limit, and it seems you
are removing the check.    Actually I think my original version of
this patch may have had a flaw in that some combination of non-data
and data packets could be combined to overflow this limit (since I
failed to check overflowing this limit where I pulled from the
mac80211 intermediate queue).



My hope is that I'm just confused and you all understand what's really
going on better than I do and have an explanation why all the above
doesn't matter and is handled in some other way.   But in case you
don't, I don't want these issues to be overlooked.

(I'm not testing using vifs on multiple channels.   But even if I was,
 I'm not sure if normal operation of wpa_supplicant or hostapd would
 be enough to trigger these problems.)



			-Tim Shepard
			 shep at alum.mit.edu

  parent reply	other threads:[~2016-07-08 16:38 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
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         ` Tim Shepard [this message]
2016-07-09 15:45           ` [ath9k-devel] [PATCH v3] " 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=E1bLYmw-0004wm-00@www.xplot.org \
    --to=shep@alum.mit.edu \
    --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 NNTP newsgroup(s).