All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Toke Høiland-Jørgensen" <toke@toke.dk>
To: Michal Kazior <michal.kazior@tieto.com>
Cc: Felix Fietkau <nbd@nbd.name>,
	linux-wireless <linux-wireless@vger.kernel.org>
Subject: Re: TCP performance regression in mac80211 triggered by the fq code
Date: Wed, 27 Jul 2016 19:31:29 +0200	[thread overview]
Message-ID: <8760rrkmxa.fsf@toke.dk> (raw)
In-Reply-To: <CA+BoTQms1bKrNKgDVdBZYt3HTA3Hdv9tcN6vgnpNOYFHiwDmXw@mail.gmail.com> (Michal Kazior's message of "Mon, 25 Jul 2016 07:15:01 +0200")

Michal Kazior <michal.kazior@tieto.com> writes:

> On 20 July 2016 at 17:24, Toke Høiland-Jørgensen <toke@toke.dk> wrote:
>> Toke Høiland-Jørgensen <toke@toke.dk> writes:
>>
>>> Felix Fietkau <nbd@nbd.name> writes:
>>>
>>>> - 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.
>>>
>>> There's definitely something iffy about the hashing. Here's the output
>>> relevant line from the aqm debug file after running a single TCP stream
>>> for 60 seconds to that station:
>>>
>>> ifname addr tid ac backlog-bytes backlog-packets flows drops marks overlimit collisions
>>> tx-bytes tx-packets
>>> wlp2s0 04:f0:21:1e:74:20 0 2 0 0 146 16 0 0 0 717758966 467925
>>>
>>> (there are two extra fields here; I added per-txq CoDel stats, will send
>>> a patch later).
>>>
>>> This shows that the txq has 146 flows associated from that one TCP flow.
>>> Looking at this over time, it seems that each time the queue runs empty
>>> (which happens way too often, which is what I was originally
>>> investigating), another flow is assigned.
>>>
>>> Michal, any idea why? :)
>>
>> And to answer this: because the flow is being freed to be reassigned
>> when it runs empty, but the counter is not decremented. Is this
>> deliberate? I.e. is the 'flows' var supposed to be a total 'new_flows'
>> counter and not a measure of the current number of assigned flows?
>
> Yes, it is deliberate. fq_codel qdisc does the same thing and I just
> mimicked it.

Right. Think it was the name that sent me down the wrong track ('flows'
instead of 'new_flows'). Especially since the way you structured things,
having a counter for how many flows are currently assigned each tid
might actually make sense...

-Toke

  reply	other threads:[~2016-07-27 17:31 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
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 [this message]
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=8760rrkmxa.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.