All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Greear <greearb@candelatech.com>
To: "Toke Høiland-Jørgensen" <toke@toke.dk>,
	"Kalle Valo" <kvalo@codeaurora.org>
Cc: Grant Grundler <grundler@google.com>, Kan Yan <kyan@google.com>,
	linux-wireless@vger.kernel.org,
	Johannes Berg <johannes@sipsolutions.net>,
	wgong@qti.qualcomm.com, ath10k@lists.infradead.org,
	wgong@codeaurora.org
Subject: Re: [PATCH v2 2/2] ath10k: Set sk_pacing_shift to 6 for 11AC WiFi chips
Date: Thu, 21 Feb 2019 09:29:54 -0800	[thread overview]
Message-ID: <80d93903-0aac-ebde-711f-4d4254275aad@candelatech.com> (raw)
In-Reply-To: <87d0nlhxl9.fsf@toke.dk>

On 2/21/19 9:15 AM, Toke Høiland-Jørgensen wrote:
> Ben Greear <greearb@candelatech.com> writes:
> 
>> On 2/21/19 8:37 AM, Toke Høiland-Jørgensen wrote:
>>> Ben Greear <greearb@candelatech.com> writes:
>>>
>>>> On 2/21/19 8:10 AM, Kalle Valo wrote:
>>>>> Toke Høiland-Jørgensen <toke@toke.dk> writes:
>>>>>
>>>>>> Grant Grundler <grundler@google.com> writes:
>>>>>>
>>>>>>> On Thu, Sep 6, 2018 at 3:18 AM Toke Høiland-Jørgensen <toke@toke.dk> wrote:
>>>>>>>>
>>>>>>>> Grant Grundler <grundler@google.com> writes:
>>>>>>>>
>>>>>>>>>> And, well, Grant's data is from a single test in a noisy
>>>>>>>>>> environment where the time series graph shows that throughput is all over
>>>>>>>>>> the place for the duration of the test; so it's hard to draw solid
>>>>>>>>>> conclusions from (for instance, for the 5-stream test, the average
>>>>>>>>>> throughput for 6 is 331 and 379 Mbps for the two repetitions, and for 7
>>>>>>>>>> it's 326 and 371 Mbps) . Unfortunately I don't have the same hardware
>>>>>>>>>> used in this test, so I can't go verify it myself; so the only thing I
>>>>>>>>>> can do is grumble about it here... :)
>>>>>>>>>
>>>>>>>>> It's a fair complaint and I agree with it. My counter argument is the
>>>>>>>>> opposite is true too: most ideal benchmarks don't measure what most
>>>>>>>>> users see. While the data wgong provided are way more noisy than I
>>>>>>>>> like, my overall "confidence" in the "conclusion" I offered is still
>>>>>>>>> positive.
>>>>>>>>
>>>>>>>> Right. I guess I would just prefer a slightly more comprehensive
>>>>>>>> evaluation to base a 4x increase in buffer size on...
>>>>>>>
>>>>>>> Kalle, is this why you didn't accept this patch? Other reasons?
>>>>>>>
>>>>>>> Toke, what else would you like to see evaluated?
>>>>>>>
>>>>>>> I generally want to see three things measured when "benchmarking"
>>>>>>> technologies: throughput, latency, cpu utilization
>>>>>>> We've covered those three I think "reasonably".
>>>>>>
>>>>>> Hmm, going back and looking at this (I'd completely forgotten about this
>>>>>> patch), I think I had two main concerns:
>>>>>>
>>>>>> 1. What happens in a degraded signal situation, where the throughput is
>>>>>>       limited by the signal conditions, or by contention with other devices.
>>>>>>       Both of these happen regularly, and I worry that latency will be
>>>>>>       badly affected under those conditions.
>>>>>>
>>>>>> 2. What happens with old hardware that has worse buffer management in
>>>>>>       the driver->firmware path (especially drivers without push/pull mode
>>>>>>       support)? For these, the lower-level queueing structure is less
>>>>>>       effective at controlling queueing latency.
>>>>>
>>>>> Do note that this patch changes behaviour _only_ for QCA6174 and QCA9377
>>>>> PCI devices, which IIRC do not even support push/pull mode. All the
>>>>> rest, including QCA988X and QCA9984 are unaffected.
>>>>
>>>> Just as a note, at least kernels such as 4.14.whatever perform poorly when
>>>> running ath10k on 9984 when acting as TCP endpoints.  This makes them not
>>>> really usable for stuff like serving video to lots of clients.
>>>>
>>>> Tweaking TCP (I do it a bit differently, but either way) can significantly
>>>> improve performance.
>>>
>>> Differently how? Did you have to do more than fiddle with the pacing_shift?
>>
>> This one, or a slightly tweaked version that applies to different kernels:
>>
>> https://github.com/greearb/linux-ct-4.16/commit/3e14e8491a5b31ce994fb2752347145e6ab7eaf5
> 
> Right; but the current mac80211 default (pacing shift 8) corresponds to
> setting your sysctl to 4...
> 
>>>> Recently I helped a user that could get barely 70 stations streaming
>>>> at 1Mbps on stock kernel (using one wave1 on 2.4, one wave-2 on 5Ghz),
>>>> and we got 110 working with a tweaked TCP stack. These were /n
>>>> stations too.
>>>>
>>>> I think it is lame that it _still_ requires out of tree patches to
>>>> make TCP work well on ath10k...even if you want to default to current
>>>> behaviour, you should allow users to tweak it to work with their use
>>>> case.
>>>
>>> Well if TCP is broken to the point of being unusable I do think we
>>> should fix it; but I think "just provide a configuration knob" should be
>>> the last resort...
>>
>> So, it has been broken for years, and waiting for a perfect solution
>> has not gotten the problem fixed.
> 
> Well, the current default should at least be closer to something that
> works well.
> 
> I do think I may have erred on the wrong side of the optimum when I
> submitted the original patch to set the default to 8; that should
> probably have been 7 (i.e., 8 ms; the optimum in the evaluation we did
> was around 6 ms, which is sadly not a power of two). Maybe changing that
> default is actually better than having to redo the testing for all the
> different devices as we're discussing in the context of this patch.
> Maybe I should just send a patch to do that...

It is hubris to think one setting works well for everyone.  Sure, set a good
default, but also let people tune the value.

And send the patches to stable so that users on older kernels can have good
performance.

Thanks,
Ben

-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com


WARNING: multiple messages have this Message-ID (diff)
From: Ben Greear <greearb@candelatech.com>
To: "Toke Høiland-Jørgensen" <toke@toke.dk>,
	"Kalle Valo" <kvalo@codeaurora.org>
Cc: Kan Yan <kyan@google.com>,
	wgong@qti.qualcomm.com, linux-wireless@vger.kernel.org,
	ath10k@lists.infradead.org, Grant Grundler <grundler@google.com>,
	wgong@codeaurora.org, Johannes Berg <johannes@sipsolutions.net>
Subject: Re: [PATCH v2 2/2] ath10k: Set sk_pacing_shift to 6 for 11AC WiFi chips
Date: Thu, 21 Feb 2019 09:29:54 -0800	[thread overview]
Message-ID: <80d93903-0aac-ebde-711f-4d4254275aad@candelatech.com> (raw)
In-Reply-To: <87d0nlhxl9.fsf@toke.dk>

On 2/21/19 9:15 AM, Toke Høiland-Jørgensen wrote:
> Ben Greear <greearb@candelatech.com> writes:
> 
>> On 2/21/19 8:37 AM, Toke Høiland-Jørgensen wrote:
>>> Ben Greear <greearb@candelatech.com> writes:
>>>
>>>> On 2/21/19 8:10 AM, Kalle Valo wrote:
>>>>> Toke Høiland-Jørgensen <toke@toke.dk> writes:
>>>>>
>>>>>> Grant Grundler <grundler@google.com> writes:
>>>>>>
>>>>>>> On Thu, Sep 6, 2018 at 3:18 AM Toke Høiland-Jørgensen <toke@toke.dk> wrote:
>>>>>>>>
>>>>>>>> Grant Grundler <grundler@google.com> writes:
>>>>>>>>
>>>>>>>>>> And, well, Grant's data is from a single test in a noisy
>>>>>>>>>> environment where the time series graph shows that throughput is all over
>>>>>>>>>> the place for the duration of the test; so it's hard to draw solid
>>>>>>>>>> conclusions from (for instance, for the 5-stream test, the average
>>>>>>>>>> throughput for 6 is 331 and 379 Mbps for the two repetitions, and for 7
>>>>>>>>>> it's 326 and 371 Mbps) . Unfortunately I don't have the same hardware
>>>>>>>>>> used in this test, so I can't go verify it myself; so the only thing I
>>>>>>>>>> can do is grumble about it here... :)
>>>>>>>>>
>>>>>>>>> It's a fair complaint and I agree with it. My counter argument is the
>>>>>>>>> opposite is true too: most ideal benchmarks don't measure what most
>>>>>>>>> users see. While the data wgong provided are way more noisy than I
>>>>>>>>> like, my overall "confidence" in the "conclusion" I offered is still
>>>>>>>>> positive.
>>>>>>>>
>>>>>>>> Right. I guess I would just prefer a slightly more comprehensive
>>>>>>>> evaluation to base a 4x increase in buffer size on...
>>>>>>>
>>>>>>> Kalle, is this why you didn't accept this patch? Other reasons?
>>>>>>>
>>>>>>> Toke, what else would you like to see evaluated?
>>>>>>>
>>>>>>> I generally want to see three things measured when "benchmarking"
>>>>>>> technologies: throughput, latency, cpu utilization
>>>>>>> We've covered those three I think "reasonably".
>>>>>>
>>>>>> Hmm, going back and looking at this (I'd completely forgotten about this
>>>>>> patch), I think I had two main concerns:
>>>>>>
>>>>>> 1. What happens in a degraded signal situation, where the throughput is
>>>>>>       limited by the signal conditions, or by contention with other devices.
>>>>>>       Both of these happen regularly, and I worry that latency will be
>>>>>>       badly affected under those conditions.
>>>>>>
>>>>>> 2. What happens with old hardware that has worse buffer management in
>>>>>>       the driver->firmware path (especially drivers without push/pull mode
>>>>>>       support)? For these, the lower-level queueing structure is less
>>>>>>       effective at controlling queueing latency.
>>>>>
>>>>> Do note that this patch changes behaviour _only_ for QCA6174 and QCA9377
>>>>> PCI devices, which IIRC do not even support push/pull mode. All the
>>>>> rest, including QCA988X and QCA9984 are unaffected.
>>>>
>>>> Just as a note, at least kernels such as 4.14.whatever perform poorly when
>>>> running ath10k on 9984 when acting as TCP endpoints.  This makes them not
>>>> really usable for stuff like serving video to lots of clients.
>>>>
>>>> Tweaking TCP (I do it a bit differently, but either way) can significantly
>>>> improve performance.
>>>
>>> Differently how? Did you have to do more than fiddle with the pacing_shift?
>>
>> This one, or a slightly tweaked version that applies to different kernels:
>>
>> https://github.com/greearb/linux-ct-4.16/commit/3e14e8491a5b31ce994fb2752347145e6ab7eaf5
> 
> Right; but the current mac80211 default (pacing shift 8) corresponds to
> setting your sysctl to 4...
> 
>>>> Recently I helped a user that could get barely 70 stations streaming
>>>> at 1Mbps on stock kernel (using one wave1 on 2.4, one wave-2 on 5Ghz),
>>>> and we got 110 working with a tweaked TCP stack. These were /n
>>>> stations too.
>>>>
>>>> I think it is lame that it _still_ requires out of tree patches to
>>>> make TCP work well on ath10k...even if you want to default to current
>>>> behaviour, you should allow users to tweak it to work with their use
>>>> case.
>>>
>>> Well if TCP is broken to the point of being unusable I do think we
>>> should fix it; but I think "just provide a configuration knob" should be
>>> the last resort...
>>
>> So, it has been broken for years, and waiting for a perfect solution
>> has not gotten the problem fixed.
> 
> Well, the current default should at least be closer to something that
> works well.
> 
> I do think I may have erred on the wrong side of the optimum when I
> submitted the original patch to set the default to 8; that should
> probably have been 7 (i.e., 8 ms; the optimum in the evaluation we did
> was around 6 ms, which is sadly not a power of two). Maybe changing that
> default is actually better than having to redo the testing for all the
> different devices as we're discussing in the context of this patch.
> Maybe I should just send a patch to do that...

It is hubris to think one setting works well for everyone.  Sure, set a good
default, but also let people tune the value.

And send the patches to stable so that users on older kernels can have good
performance.

Thanks,
Ben

-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com


_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

  parent reply	other threads:[~2019-02-21 17:29 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-08 10:40 [PATCH v2 0/2] Change sk_pacing_shift in ieee80211_hw for best tx throughput Wen Gong
2018-08-08 10:40 ` Wen Gong
2018-08-08 10:40 ` [PATCH v2 1/2] mac80211: Change sk_pacing_shift saved to ieee80211_hw Wen Gong
2018-08-08 10:40   ` Wen Gong
2018-08-08 10:40 ` [PATCH v2 2/2] ath10k: Set sk_pacing_shift to 6 for 11AC WiFi chips Wen Gong
2018-08-08 10:40   ` Wen Gong
2018-08-08 10:43   ` Toke Høiland-Jørgensen
2018-08-08 10:43     ` Toke Høiland-Jørgensen
2018-08-10  8:05     ` Wen Gong
2018-08-10  8:05       ` Wen Gong
2018-08-10 13:17       ` Toke Høiland-Jørgensen
2018-08-10 13:17         ` Toke Høiland-Jørgensen
2018-08-13  5:37         ` Wen Gong
2018-08-13  5:37           ` Wen Gong
2018-08-13 11:18           ` Toke Høiland-Jørgensen
2018-08-13 11:18             ` Toke Høiland-Jørgensen
2018-08-14  5:55             ` Wen Gong
2018-08-14  5:55               ` Wen Gong
2018-08-17 11:32               ` Toke Høiland-Jørgensen
2018-08-17 11:32                 ` Toke Høiland-Jørgensen
2018-08-30 23:25                 ` Peter Oh
2018-08-30 23:25                   ` Peter Oh
2018-08-31 15:36                   ` Toke Høiland-Jørgensen
2018-08-31 15:36                     ` Toke Høiland-Jørgensen
2018-08-30 23:32           ` Grant Grundler
2018-09-03  9:38             ` Johannes Berg
2018-09-03  9:38               ` Johannes Berg
2018-09-03 11:11               ` Toke Høiland-Jørgensen
2018-09-03 11:11                 ` Toke Høiland-Jørgensen
2018-09-03 11:47                 ` Johannes Berg
2018-09-03 11:47                   ` Johannes Berg
2018-09-03 13:35                   ` Toke Høiland-Jørgensen
2018-09-03 13:35                     ` Toke Høiland-Jørgensen
2018-09-03 14:57                     ` Dave Taht
2018-09-03 14:57                       ` Dave Taht
2018-09-03 15:35                       ` Dave Taht
2018-09-03 15:35                         ` Dave Taht
2018-09-04 23:43                     ` Grant Grundler
2018-09-04 23:43                       ` Grant Grundler
2018-09-05  7:23                       ` Wen Gong
2018-09-05  7:23                         ` Wen Gong
2018-09-06 10:18                       ` Toke Høiland-Jørgensen
2018-09-06 10:18                         ` Toke Høiland-Jørgensen
2019-02-20 19:15                         ` Grant Grundler
2019-02-20 19:15                           ` Grant Grundler
2019-02-21  4:39                           ` Kalle Valo
2019-02-21  4:39                             ` Kalle Valo
2019-02-21 15:42                           ` Toke Høiland-Jørgensen
2019-02-21 15:42                             ` Toke Høiland-Jørgensen
2019-02-21 16:10                             ` Kalle Valo
2019-02-21 16:10                               ` Kalle Valo
2019-02-21 16:22                               ` Ben Greear
2019-02-21 16:22                                 ` Ben Greear
2019-02-21 16:37                                 ` Toke Høiland-Jørgensen
2019-02-21 16:37                                   ` Toke Høiland-Jørgensen
2019-02-21 16:57                                   ` Ben Greear
2019-02-21 16:57                                     ` Ben Greear
2019-02-21 17:15                                     ` Toke Høiland-Jørgensen
2019-02-21 17:15                                       ` Toke Høiland-Jørgensen
2019-02-21 17:29                                       ` [PATCH] mac80211: Change default tx_sk_pacing_shift to 7 Toke Høiland-Jørgensen
2019-02-21 17:29                                         ` Toke Høiland-Jørgensen
2019-02-22 12:29                                         ` Johannes Berg
2019-02-22 13:06                                           ` Toke Høiland-Jørgensen
2019-02-22 13:06                                             ` Toke Høiland-Jørgensen
2019-02-22 13:07                                             ` Johannes Berg
2019-02-22 13:07                                               ` Johannes Berg
2019-02-22 13:40                                               ` Toke Høiland-Jørgensen
2019-02-22 13:40                                                 ` Toke Høiland-Jørgensen
2019-02-22 19:10                                                 ` Johannes Berg
2019-02-22 19:10                                                   ` Johannes Berg
2019-02-23 11:49                                                   ` Toke Høiland-Jørgensen
2019-02-23 11:49                                                     ` Toke Høiland-Jørgensen
2019-02-21 17:29                                       ` Ben Greear [this message]
2019-02-21 17:29                                         ` [PATCH v2 2/2] ath10k: Set sk_pacing_shift to 6 for 11AC WiFi chips Ben Greear
2019-02-21 22:50                                         ` Toke Høiland-Jørgensen
2019-02-21 22:50                                           ` Toke Høiland-Jørgensen
2019-02-21 16:28                               ` Toke Høiland-Jørgensen
2019-02-21 16:28                                 ` Toke Høiland-Jørgensen
2020-04-23  6:31   ` Kalle Valo
2020-04-23  6:31   ` Kalle Valo
2018-08-08 19:00 ` [PATCH v2 0/2] Change sk_pacing_shift in ieee80211_hw for best tx throughput Peter Oh
2018-08-08 19:00   ` Peter Oh
2018-08-09  9:32   ` Arend van Spriel
2018-08-09  9:32     ` Arend van Spriel
2018-08-10 13:20     ` Toke Høiland-Jørgensen
2018-08-10 13:20       ` Toke Høiland-Jørgensen
2018-08-10 19:28       ` Arend van Spriel
2018-08-10 19:28         ` Arend van Spriel
2018-08-10 19:52         ` Ben Greear
2018-08-10 19:52           ` Ben Greear
2018-08-11 19:21           ` Arend van Spriel
2018-08-11 19:21             ` Arend van Spriel
2018-08-20 12:46             ` Toke Høiland-Jørgensen
2018-08-20 12:46               ` Toke Høiland-Jørgensen
2018-08-20 15:14               ` Ben Greear
2018-08-20 15:14                 ` Ben Greear
2018-09-03 18:36 [PATCH v2 2/2] ath10k: Set sk_pacing_shift to 6 for 11AC WiFi chips Kan Yan

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=80d93903-0aac-ebde-711f-4d4254275aad@candelatech.com \
    --to=greearb@candelatech.com \
    --cc=ath10k@lists.infradead.org \
    --cc=grundler@google.com \
    --cc=johannes@sipsolutions.net \
    --cc=kvalo@codeaurora.org \
    --cc=kyan@google.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=toke@toke.dk \
    --cc=wgong@codeaurora.org \
    --cc=wgong@qti.qualcomm.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.