From: "Toke Høiland-Jørgensen" <toke@toke.dk>
To: Felix Fietkau <nbd@nbd.name>
Cc: linux-wireless <linux-wireless@vger.kernel.org>,
Michal Kazior <michal.kazior@tieto.com>
Subject: Re: TCP performance regression in mac80211 triggered by the fq code
Date: Mon, 18 Jul 2016 23:49:21 +0200 [thread overview]
Message-ID: <87d1mar50e.fsf@toke.dk> (raw)
In-Reply-To: <87shvfujl4.fsf@toke.dk> ("Toke Høiland-Jørgensen"'s message of "Tue, 12 Jul 2016 14:28:07 +0200")
Toke Høiland-Jørgensen <toke@toke.dk> writes:
> Felix Fietkau <nbd@nbd.name> writes:
>
>> Hi,
>>
>> With Toke's ath9k txq patch I've noticed a pretty nasty performance
>> regression when running local iperf on an AP (running the txq stuff) to
>> a wireless client.
>>
>> Here's some things that I found:
>> - when I use only one TCP stream I get around 90-110 Mbit/s
>> - when running multiple TCP streams, I get only 35-40 Mbit/s total
>> - fairness between TCP streams looks completely fine
>> - there's no big queue buildup, the code never actually drops any packets
>> - if I put a hack in the fq code to force the hash to a constant value
>> (effectively disabling fq without disabling codel), the problem
>> disappears and even multiple streams get proper performance.
>>
>> Please let me know if you have any ideas.
>
> Hmm, I see two TCP streams get about the same aggregate throughput as
> one, both when started from the AP and when started one hop away.
So while I have still not been able to reproduce the issue you
described, I have seen something else that is at least puzzling, and may
or may not be related:
When monitoring the output of /sys/kernel/debug/ieee80211/phy0/aqm I see
that all stations have their queues empty all the way to zero several
times per second. This is a bit puzzling; the queue should be kept under
control, but really shouldn't empty completely. I figure this might also
be the reason why you're seeing degraded performance...
Since the stats output doesn't include a counter for drops, I haven't
gotten any further with figuring out if it's CoDel that's being too
aggressive, or what is happening. But will probably add that in and take
another look.
-Toke
next prev parent reply other threads:[~2016-07-18 21:49 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-12 10:09 TCP performance regression in mac80211 triggered by the fq code Felix Fietkau
2016-07-12 12:13 ` Dave Taht
2016-07-12 13:21 ` Felix Fietkau
2016-07-12 14:02 ` Dave Taht
2016-07-13 7:57 ` Dave Taht
2016-07-13 8:53 ` Felix Fietkau
2016-07-13 9:13 ` Dave Taht
2016-07-19 13:10 ` Michal Kazior
2016-07-12 12:28 ` Toke Høiland-Jørgensen
2016-07-12 12:44 ` Dave Taht
2016-07-12 12:57 ` Toke Høiland-Jørgensen
2016-07-12 13:03 ` Dave Taht
2016-07-12 13:22 ` Felix Fietkau
2016-07-12 13:23 ` Felix Fietkau
2016-07-18 21:49 ` Toke Høiland-Jørgensen [this message]
2016-07-18 22:02 ` Dave Taht
2016-07-19 13:13 ` Michal Kazior
2016-07-19 14:32 ` Felix Fietkau
2016-07-20 14:45 ` Toke Høiland-Jørgensen
2016-07-20 15:24 ` Toke Høiland-Jørgensen
2016-07-25 5:15 ` Michal Kazior
2016-07-27 17:31 ` Toke Høiland-Jørgensen
2016-07-22 10:51 ` 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=87d1mar50e.fsf@toke.dk \
--to=toke@toke.dk \
--cc=linux-wireless@vger.kernel.org \
--cc=michal.kazior@tieto.com \
--cc=nbd@nbd.name \
/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.