From: Stanislaw Gruszka <sgruszka@redhat.com>
To: Daniel Golle <daniel@makrotopia.org>
Cc: Enrico Mioso <mrkiko.rs@gmail.com>,
Tom Psyborg <pozega.tomislav@gmail.com>,
linux-wireless <linux-wireless@vger.kernel.org>,
Johannes Berg <johannes.berg@intel.com>,
Arnd Bergmann <arnd@arndb.de>, John Crispin <john@phrozen.org>,
Felix Fietkau <nbd@nbd.name>, Jamie Stuart <jamie@onebillion.org>,
Mathias Kresin <dev@kresin.me>
Subject: Re: ieee80211 phy0: rt2x00queue_write_tx_frame: Error - Dropping frame due to full tx queue...?
Date: Wed, 7 Mar 2018 13:29:35 +0100 [thread overview]
Message-ID: <20180307122935.GB10584@redhat.com> (raw)
In-Reply-To: <20180307122701.GA10584@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 2999 bytes --]
I forgot to attach the patches, do it now.
On Wed, Mar 07, 2018 at 01:27:01PM +0100, Stanislaw Gruszka wrote:
> On Thu, Mar 01, 2018 at 04:30:10PM +0100, Daniel Golle wrote:
> > [forwarding to all other involved players]
> >
> > On Thu, Mar 01, 2018 at 05:50:51PM +0300, Jamie Stuart wrote:
> > > Hi Daniel,
> > > The driver seems much improved after this fix.
> >
> > it's about those two
> > [PATCH 1/2] rt2x00: pause almost full queue early
> > [PATCH 2/2] rt2x00: do not pause queue unconditionally on error path
> >
> > > Under very heavy load (30 clients downloading multi-GB files from SD card on the server concurrently), wifi dies with errors:
>
> This is some testbed? Could you share how did you setup such
> environment and what are client devices ?
>
> > > [ 7794.230376] ieee80211 phy0: rt2x00lib_rxdone_read_signal: Warning - Frame received with unrecognized signal, mode=0x0001, signal=0x010c, type=4
>
> This is indicator that HW/FW has a problem. There could be various
> reasons for that. One possible I can also observe in my setup,is strange
> mishmash of seq on frames which were not acked in BlockACK and
> had to be resent. This can happen when many frames are wrongly decoded
> (i.e. when there is bad radio condition or we have not correct low level
> RF/BBP setup for a Ralink device). To mitigate that problem we can
> limit length of agreggeted AMPDU frame.
>
> I attached two patches which do that. One for RX side second for TX side.
> Please check if they make a diffrent. You can also hardcode ba_size = 0
> for those 30 clients setup.
>
> Note the patches can cause (possibly small) perfromance degradation on
> good setups.
>
> Mathias, could you check them as well and see if they do not cause
> performance regression on your device ? Lastly when I changed ba_size
> setting, it was a problem on your setup.
>
> > > Thu Mar 1 16:36:47 2018 kern.err kernel: [ 8702.146403] ieee80211 phy0: rt2x00queue_write_tx_frame: Error - Arrived at non-free entry in the non-full queue 2
> > > Thu Mar 1 16:36:47 2018 kern.err kernel: [ 8702.146403] Please file bug report to http://rt2x00.serialmonkey.com
> > > Thu Mar 1 16:36:48 2018 kern.err kernel: [ 8702.288149] ieee80211 phy0: rt2x00queue_write_tx_frame: Error - Arrived at non-free entry in the non-full queue 2
> > > Thu Mar 1 16:36:48 2018 kern.err kernel: [ 8702.288149] Please file bug report to http://rt2x00.serialmonkey.com
> > > Thu Mar 1 16:36:48 2018 kern.err kernel: [ 8702.380761] ieee80211 phy0: rt2x00queue_write_tx_frame: Error - Arrived at non-free entry in the non-full queue 2
> > > Thu Mar 1 16:36:48 2018 kern.err kernel: [ 8702.380761] Please file bug report to http://rt2x00.serialmonkey.com
>
> For those errors I recommend to remove
>
> 600-23-rt2x00-rt2800mmio-add-a-workaround-for-spurious-TX_F.patch
>
> patch. Whould be good if OpenWRT developers could apply this patch only
> on target where it is really needed, not for all rt2800 devices.
>
> Thanks
> Stanislaw
[-- Attachment #2: rt2800_change_rx_ampdu_factor.patch --]
[-- Type: text/plain, Size: 604 bytes --]
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index d2c289446c00..e68f7f9d48f8 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -9285,7 +9285,7 @@ static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
spec->ht.cap |= rx_chains << IEEE80211_HT_CAP_RX_STBC_SHIFT;
- spec->ht.ampdu_factor = (rx_chains > 1) ? 3 : 2;
+ spec->ht.ampdu_factor = 0;
spec->ht.ampdu_density = 4;
spec->ht.mcs.tx_params = IEEE80211_HT_MCS_TX_DEFINED;
if (tx_chains != rx_chains) {
[-- Attachment #3: rt2800_change_ba_size.patch --]
[-- Type: text/plain, Size: 1133 bytes --]
diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
index a2c1ca5c76d1..66377f222300 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
@@ -305,12 +305,13 @@ static void rt2x00queue_create_tx_descriptor_ht(struct rt2x00_dev *rt2x00dev,
struct ieee80211_tx_rate *txrate = &tx_info->control.rates[0];
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
struct rt2x00_sta *sta_priv = NULL;
- u8 density = 0;
+ u8 density = 0, ba_size = 0;
if (sta) {
sta_priv = sta_to_rt2x00_sta(sta);
txdesc->u.ht.wcid = sta_priv->wcid;
density = sta->ht_cap.ampdu_density;
+ ba_size = (2 << sta->ht_cap.ampdu_factor) - 1;
}
/*
@@ -357,7 +358,7 @@ static void rt2x00queue_create_tx_descriptor_ht(struct rt2x00_dev *rt2x00dev,
!(tx_info->flags & IEEE80211_TX_CTL_RATE_CTRL_PROBE)) {
__set_bit(ENTRY_TXD_HT_AMPDU, &txdesc->flags);
txdesc->u.ht.mpdu_density = density;
- txdesc->u.ht.ba_size = 7; /* FIXME: What value is needed? */
+ txdesc->u.ht.ba_size = ba_size;
}
/*
next prev parent reply other threads:[~2018-03-07 12:29 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-11 20:51 ieee80211 phy0: rt2x00queue_write_tx_frame: Error - Dropping frame due to full tx queue...? Enrico Mioso
2017-12-13 15:20 ` Stanislaw Gruszka
2017-12-16 18:33 ` Enrico Mioso
2017-12-18 15:21 ` Stanislaw Gruszka
2017-12-19 12:27 ` Stanislaw Gruszka
2017-12-19 12:39 ` Enrico Mioso
2017-12-19 12:43 ` Enrico Mioso
2017-12-19 12:54 ` Stanislaw Gruszka
2017-12-19 13:25 ` Enrico Mioso
2017-12-20 17:49 ` Enrico Mioso
2017-12-21 14:25 ` Stanislaw Gruszka
2017-12-24 12:19 ` Enrico Mioso
2018-01-03 11:35 ` Stanislaw Gruszka
2018-01-03 14:04 ` Enrico Mioso
[not found] ` <CAKR_QVLRwAA0NJSarX46J4A8XSp8h5SuTEtSBQ4ydpEPh_-aUw@mail.gmail.com>
2018-01-22 5:45 ` Enrico Mioso
2018-01-23 13:22 ` Stanislaw Gruszka
2018-01-24 5:14 ` Enrico Mioso
2018-01-24 8:18 ` Enrico Mioso
2018-01-24 10:03 ` Stanislaw Gruszka
2018-03-01 15:30 ` Daniel Golle
2018-03-02 19:13 ` Enrico Mioso
2018-03-07 12:27 ` Stanislaw Gruszka
2018-03-07 12:29 ` Stanislaw Gruszka [this message]
2018-03-23 7:51 ` Mathias Kresin
2018-03-26 10:35 ` Stanislaw Gruszka
2018-03-27 7:46 ` Mathias Kresin
2018-03-27 17:18 ` Stanislaw Gruszka
2018-03-27 17:43 ` Daniel Golle
2018-03-28 4:14 ` Enrico Mioso
[not found] ` <CAOt++SeSQ2j1KuVkbqt77LfznXN7JV0Lx5O8d7-m2VBrz8=85g@mail.gmail.com>
2018-03-29 5:13 ` Enrico Mioso
2018-03-30 14:41 ` Enrico Mioso
2018-03-30 14:44 ` Enrico Mioso
[not found] ` <MWHPR02MB3326233159B021143D7278F5D4A10@MWHPR02MB3326.namprd02.prod.outlook.com>
2018-03-30 17:33 ` Enrico Mioso
[not found] ` <CAOt++SeLh_NxcmM=YEMQSv4y9PabS_dT7k4yTxUiqXbac-=iUQ@mail.gmail.com>
2018-04-17 13:55 ` Enrico Mioso
2018-04-17 13:56 ` Jamie Stuart
2018-04-17 13:57 ` Enrico Mioso
2018-04-17 19:42 ` Stanislaw Gruszka
[not found] ` <CAOt++SeNt=4RUTvAR1y_WjC=a-YyYa3YBSmoAmv+7uK71U+3+A@mail.gmail.com>
2018-05-28 12:50 ` Stanislaw Gruszka
2018-05-28 13:54 ` Daniel Golle
2018-08-15 11:40 ` Stanislaw Gruszka
2018-08-15 22:35 ` Daniel Golle
2018-08-16 11:01 ` Stanislaw Gruszka
[not found] ` <DM5PR02MB365669D5E9F2DE20DAE4CB7AD43E0@DM5PR02MB3656.namprd02.prod.outlook.com>
2018-08-18 16:08 ` Daniel Golle
2018-08-20 12:20 ` Stanislaw Gruszka
2018-08-24 13:02 ` Stanislaw Gruszka
2018-03-28 18:13 ` Stanislaw Gruszka
2018-03-07 15:47 ` Jamie Stuart
2018-03-07 23:30 ` Enrico Mioso
2018-03-07 23:31 ` Enrico Mioso
2018-03-08 9:39 ` Stanislaw Gruszka
2018-03-08 14:28 ` Enrico Mioso
2018-01-23 13:20 ` Stanislaw Gruszka
2017-12-26 17:20 ` Enrico Mioso
2018-01-03 11:45 ` Stanislaw Gruszka
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=20180307122935.GB10584@redhat.com \
--to=sgruszka@redhat.com \
--cc=arnd@arndb.de \
--cc=daniel@makrotopia.org \
--cc=dev@kresin.me \
--cc=jamie@onebillion.org \
--cc=johannes.berg@intel.com \
--cc=john@phrozen.org \
--cc=linux-wireless@vger.kernel.org \
--cc=mrkiko.rs@gmail.com \
--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 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.