linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stanislaw Gruszka <sgruszka@redhat.com>
To: Felix Fietkau <nbd@nbd.name>
Cc: "Tomislav Požega" <pozega.tomislav@gmail.com>,
	linux-wireless@vger.kernel.org,
	"Daniel Golle" <daniel@makrotopia.org>,
	"Mathias Kresin" <dev@kresin.me>
Subject: Re: [PATCH 0/5] rt2800mmio txdone/interrupts/flush rework
Date: Fri, 5 Oct 2018 12:34:34 +0200	[thread overview]
Message-ID: <20181005103434.GA23025@redhat.com> (raw)
In-Reply-To: <363e4d1a-2a1f-2ab9-dad6-91d36fe38d53@nbd.name>

On Fri, Oct 05, 2018 at 12:05:56PM +0200, Felix Fietkau wrote:
> On 2018-10-05 09:44, Stanislaw Gruszka wrote:
> > My experience is that performance between two rt2800 devices vary with
> > no apparent reason. There are two problems I know that maigh affect
> > performance at random (and I think there are also some other low level
> > problems that I'm not aware of that cause performance fluctuations).
> > 
> > First problem is that HW aggregate RATE_PROBE frames with other frames
> > at different rate, so we can not do rate probing properly for rate
> > control algorithm.
> I believe this is fixable. On MT76x2, I was able to use the QSEL field
> in the DMA descriptor to force the hw to send it out as a single frame.
> It is normally set to 2, you can set it to 0 for frames with
> IEEE80211_TX_CTL_RATE_CTRL_PROBE set.
> Theoretically, the same should also work on RT2800 devices.

I created a patch that do this 
https://github.com/sgruszka/wireless-drivers-next/commit/846d205edd8c36d1b7828fee54bf4cf40bf8cb1a
but coused problems on some devices and I did not observed correct
behaviour - probe frames were still aggregated.

Perhaps patch has some bug (i.e. some registers have to be initialized
to make QSEL work) or maybe this will only work on some chipsets i.e.
MT7620 and QSEL should be used only conditionally on those chips.

> > Second problem: we send BAR when we fail to send a frame and this might
> > have positive and negative effect, depend what remote hardware do when it
> > gets BAR. This seems to be problem when two rt2800 devices are connected
> > and not a problem if rt2800 is connected with ath or iwl devices.
> On the receiver side, BAR is typically processed in software. mac80211
> handles that, so I don't think there is a lot of room for chipset
> specific behavior here.

This is not what I observed. For me looks like BA is send by FW/HW for
both AMPDU frames and for BAR. And behaviour differs. I have one older
device that send completely bogus SSN (seq num) in solicit BA frame
not correpond to BAR SSN or frames in AMPDU at all. 

Some devices send solicit BA SSN and then send BA with older SSNs,
for frames which should already be flushed.

And some devices send several BA with solicit SSN until catch up to
ack frame that has bigger sequence number than solicit SSN.

Regards 
Stanislaw 

  reply	other threads:[~2018-10-05 10:34 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-26 10:24 [PATCH 0/5] rt2800mmio txdone/interrupts/flush rework Stanislaw Gruszka
2018-09-26 10:24 ` [PATCH 1/5] rt2800: move usb specific txdone/txstatus routines to rt2800lib Stanislaw Gruszka
2018-10-01 15:39   ` Kalle Valo
2018-09-26 10:24 ` [PATCH 2/5] rt2800mmio: use txdone/txstatus routines from lib Stanislaw Gruszka
2018-09-26 10:24 ` [PATCH 3/5] rt2x00: do not check for txstatus timeout every time on tasklet Stanislaw Gruszka
2018-09-26 10:24 ` [PATCH 4/5] rt2x00: use different txstatus timeouts when flushing Stanislaw Gruszka
2018-09-26 10:24 ` [PATCH 5/5] rt2800: flush and txstatus rework for rt2800mmio Stanislaw Gruszka
2018-10-04 23:51 ` [PATCH 0/5] rt2800mmio txdone/interrupts/flush rework Tomislav Požega
2018-10-05  7:44   ` Stanislaw Gruszka
2018-10-05 10:03     ` Stanislaw Gruszka
2018-10-05 10:05     ` Felix Fietkau
2018-10-05 10:34       ` Stanislaw Gruszka [this message]
     [not found]   ` <DM5PR02MB3656089F61C0AD9C4D5E5FBCD4CA0@DM5PR02MB3656.namprd02.prod.outlook.com>
2018-11-05 12:10     ` Tom Psyborg

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=20181005103434.GA23025@redhat.com \
    --to=sgruszka@redhat.com \
    --cc=daniel@makrotopia.org \
    --cc=dev@kresin.me \
    --cc=linux-wireless@vger.kernel.org \
    --cc=nbd@nbd.name \
    --cc=pozega.tomislav@gmail.com \
    /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).