linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Arend van Spriel" <arend@broadcom.com>
To: "Seth Forshee" <seth.forshee@canonical.com>
Cc: linux-wireless@vger.kernel.org,
	"John W. Linville" <linville@tuxdriver.com>,
	"Franky (Zhenhui) Lin" <frankyl@broadcom.com>,
	"Brett Rudley" <brudley@broadcom.com>,
	"Roland Vossen" <rvossen@broadcom.com>,
	"Kan Yan" <kanyan@broadcom.com>,
	brcm80211-dev-list@broadcom.com, "Daniel Wagner" <wagi@monom.org>
Subject: Re: [PATCH v2 06/22] brcmsmac: Remove internal tx queue
Date: Mon, 19 Nov 2012 19:47:02 +0100	[thread overview]
Message-ID: <50AA7EA6.9050905@broadcom.com> (raw)
In-Reply-To: <1352988492-21340-7-git-send-email-seth.forshee@canonical.com>

On 11/15/2012 03:07 PM, Seth Forshee wrote:
> The brcmsmac internal tx buffering is problematic. The amount of
> buffering is excessive (228 packets in addition to the 256 slots in each
> DMA ring), and frames may be dropped due to a lack of flow control.
>
> This patch reworks the transmit code path to remove the internal
> buffering. Frames are immediately handed off to the DMA support rather
> than passing through an intermediate queue. Non-aggregate frames are
> queued immediately into the tx rings, and aggregate frames are queued
> temporarily in an AMPDU session until ready for transmit.
>
> Transmit flow control is also added to avoid dropping packets when the
> tx rings are full. Conceptually this is a separate change, but it's
> included in this commit because removing the tx queue without adding
> flow control could cause significant problems.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Arend van Spriel <arend@broadcom.com>
> Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
> ---
>   drivers/net/wireless/brcm80211/brcmsmac/ampdu.c |  167 +--------
>   drivers/net/wireless/brcm80211/brcmsmac/ampdu.h |    3 -
>   drivers/net/wireless/brcm80211/brcmsmac/dma.c   |  189 ++++++++--
>   drivers/net/wireless/brcm80211/brcmsmac/dma.h   |    9 +-
>   drivers/net/wireless/brcm80211/brcmsmac/main.c  |  459 ++++++++---------------
>   drivers/net/wireless/brcm80211/brcmsmac/main.h  |   33 +-
>   drivers/net/wireless/brcm80211/brcmsmac/pub.h   |   13 -
>   drivers/net/wireless/brcm80211/brcmsmac/types.h |    1 -
>   8 files changed, 316 insertions(+), 558 deletions(-)
>
> diff --git a/drivers/net/wireless/brcm80211/brcmsmac/main.c b/drivers/net/wireless/brcm80211/brcmsmac/main.c
> index 8abf39d..2b8987c 100644
> --- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
> +++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
> @@ -303,6 +304,18 @@ static const u8 wme_ac2fifo[] = {
>   	TX_AC_BK_FIFO
>   };
>
> +/* 802.1D Priority to precedence queue mapping */
> +const u8 wlc_prio2prec_map[] = {
> +	_BRCMS_PREC_BE,		/* 0 BE - Best-effort */
> +	_BRCMS_PREC_BK,		/* 1 BK - Background */
> +	_BRCMS_PREC_NONE,		/* 2 None = - */
> +	_BRCMS_PREC_EE,		/* 3 EE - Excellent-effort */
> +	_BRCMS_PREC_CL,		/* 4 CL - Controlled Load */
> +	_BRCMS_PREC_VI,		/* 5 Vi - Video */
> +	_BRCMS_PREC_VO,		/* 6 Vo - Voice */
> +	_BRCMS_PREC_NC,		/* 7 NC - Network Control */
> +};
> +

The wlc_prio2prec_map was removed in patch 06/22. Some reordering of 
commits gone wrong here?

>   static const u16 xmtfifo_sz[][NFIFO] = {
>   	/* corerev 17: 5120, 49152, 49152, 5376, 4352, 1280 */
>   	{20, 192, 192, 21, 17, 5},



  reply	other threads:[~2012-11-19 18:47 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-15 14:07 [PATCH v2 00/22] brcmsmac: Tx rework and expanded debug/trace support Seth Forshee
2012-11-15 14:07 ` [PATCH v2 01/22] brcmsmac: Introduce AMPDU sessions for assembling AMPDUs Seth Forshee
2012-11-16  8:36   ` Arend van Spriel
2012-11-16 14:12     ` Seth Forshee
2012-11-16 15:02       ` Arend van Spriel
2012-11-16 15:18         ` Seth Forshee
2012-11-19 18:33   ` Arend van Spriel
2012-11-15 14:07 ` [PATCH v2 02/22] brcmsmac: Don't weight AMPDU packets in txfifo Seth Forshee
2012-11-19 18:34   ` Arend van Spriel
2012-11-15 14:07 ` [PATCH v2 03/22] brcmsmac: Add helper function for updating txavail count Seth Forshee
2012-11-19 18:35   ` Arend van Spriel
2012-11-15 14:07 ` [PATCH v2 04/22] brcmsmac: Remove unimplemented flow control functions Seth Forshee
2012-11-19 18:35   ` Arend van Spriel
2012-11-15 14:07 ` [PATCH v2 05/22] brcmsmac: Use IEEE 802.11 AC levels for pktq precedence levels Seth Forshee
2012-11-19 18:42   ` Arend van Spriel
2012-11-19 19:16     ` Seth Forshee
2012-11-19 20:50       ` Arend van Spriel
2012-11-15 14:07 ` [PATCH v2 06/22] brcmsmac: Remove internal tx queue Seth Forshee
2012-11-19 18:47   ` Arend van Spriel [this message]
2012-11-15 14:07 ` [PATCH v2 07/22] brcmsmac: Use correct descriptor count when calculating next rx descriptor Seth Forshee
2012-11-15 14:07 ` [PATCH v2 08/22] brcmsmac: Reduce number of entries in tx DMA rings Seth Forshee
2012-11-19 18:47   ` Arend van Spriel
2012-11-15 14:07 ` [PATCH v2 09/22] brcm80211: Allow trace support to be enabled separately from debug Seth Forshee
2012-11-19 20:33   ` Arend van Spriel
2012-11-19 21:15     ` Seth Forshee
2012-11-19 21:19       ` Arend van Spriel
2012-11-19 21:33         ` Seth Forshee
2012-11-27 16:22           ` Seth Forshee
2012-11-15 14:08 ` [PATCH v2 10/22] brcm80211: Convert log message levels to debug levels Seth Forshee
2012-11-15 14:08 ` [PATCH v2 11/22] brcmsmac: Add module parameter for setting the debug level Seth Forshee
2012-11-19 20:35   ` Arend van Spriel
2012-11-15 14:08 ` [PATCH v2 12/22] brcmsmac: Add support for writing debug messages to the trace buffer Seth Forshee
2012-11-19 20:35   ` Arend van Spriel
2012-11-22 13:42     ` Arend van Spriel
2012-11-15 14:08 ` [PATCH v2 13/22] brcmsmac: Use debug macros for general error and debug statements Seth Forshee
2012-11-15 14:08 ` [PATCH v2 14/22] brcmsmac: Add brcms_dbg_mac80211() debug macro Seth Forshee
2012-11-19 20:36   ` Arend van Spriel
2012-11-15 14:08 ` [PATCH v2 15/22] brcmsmac: Add rx and tx debug macros Seth Forshee
2012-11-19 20:37   ` Arend van Spriel
2012-11-15 14:08 ` [PATCH v2 16/22] brcmsmac: Add brcms_dbg_int() debug macro Seth Forshee
2012-11-19 20:37   ` Arend van Spriel
2012-11-15 14:08 ` [PATCH v2 17/22] brcmsmac: Add brcms_dbg_dma() " Seth Forshee
2012-11-19 20:38   ` Arend van Spriel
2012-11-15 14:08 ` [PATCH v2 18/22] brcmsmac: Add brcms_dbg_ht() " Seth Forshee
2012-11-19 20:39   ` Arend van Spriel
2012-11-15 14:08 ` [PATCH v2 19/22] brcmsmac: Improve tx trace and debug support Seth Forshee
2012-11-15 14:08 ` [PATCH v2 20/22] brcmsmac: Add tracepoint for macintstatus Seth Forshee
2012-11-15 14:08 ` [PATCH v2 21/22] brcmsmac: Add tracepoint for AMPDU session information Seth Forshee
2012-11-15 14:08 ` [PATCH v2 22/22] brcmsmac: Remove some noisy and uninformative debug messages Seth Forshee
2012-11-15 19:47 ` [PATCH v2 00/22] brcmsmac: Tx rework and expanded debug/trace support Arend van Spriel
2012-11-19 19:11 ` Daniel Wagner
2012-11-20  7:30   ` Daniel Wagner
2012-11-20 14:28     ` Seth Forshee
2012-11-20 17:44       ` Daniel Wagner
2012-11-20 20:54         ` Seth Forshee
2012-11-20 22:35           ` Daniel Wagner
2012-11-20 22:45             ` Daniel Wagner
2012-11-21  9:44               ` Arend van Spriel
2012-11-21  9:56                 ` Daniel Wagner
2012-11-21 14:35                   ` Seth Forshee
2012-11-21 17:56                     ` Arend van Spriel
2012-11-23  7:32                     ` Daniel Wagner
2012-11-26 19:36                     ` Seth Forshee
2012-11-26 21:20                       ` Daniel Wagner
2012-12-03  8:23                         ` Daniel Wagner
2012-12-03  8:37                           ` Arend van Spriel
2012-12-03 10:15                             ` Daniel Wagner
2012-12-03 17:40                               ` Arend van Spriel
2012-12-04  7:25                                 ` Daniel Wagner
2012-12-05  8:16                                 ` Daniel Wagner
2012-11-20 21:09         ` Arend van Spriel
2012-11-20 21:16           ` Seth Forshee
2012-11-20 21:51             ` Arend van Spriel
2012-11-20 22:36               ` Seth Forshee
2012-11-20 22:35           ` Daniel Wagner
2012-11-19 20:45 ` Arend van Spriel
2012-11-19 21:33   ` Seth Forshee

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=50AA7EA6.9050905@broadcom.com \
    --to=arend@broadcom.com \
    --cc=brcm80211-dev-list@broadcom.com \
    --cc=brudley@broadcom.com \
    --cc=frankyl@broadcom.com \
    --cc=kanyan@broadcom.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    --cc=rvossen@broadcom.com \
    --cc=seth.forshee@canonical.com \
    --cc=wagi@monom.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).