ath10k performance, master branch from 20160407

Rajkumar Manoharan rmanohar at codeaurora.org
Sun May 15 20:57:54 PDT 2016


On 2016-05-16 04:29, Roman Yeryomin wrote:
> On 9 May 2016 at 15:26, Michal Kazior <michal.kazior at tieto.com> wrote:
>> Hi Roman,
>> 
>> On 22 April 2016 at 19:05, Roman Yeryomin <leroi.lists at gmail.com> 
>> wrote:
>>> On 19 April 2016 at 18:35, Valo, Kalle <kvalo at qca.qualcomm.com> 
>>> wrote:
>>>> Michal Kazior <michal.kazior at tieto.com> writes:
>>>> 
>>>>> On 19 April 2016 at 09:31, Roman Yeryomin <leroi.lists at gmail.com> 
>>>>> wrote:
>>>>>> On 19 April 2016 at 08:28, Michal Kazior <michal.kazior at tieto.com> 
>>>>>> wrote:
>>>>>> 
>>>>>>> If my hunch is right there's no easy (and proper) fix for that 
>>>>>>> now.
>>>>>>> 
>>>>>>> One of the patchset patches (ath10k: implement wake_tx_queue) 
>>>>>>> starts
>>>>>>> to use mac80211 software queuing. This introduces extra induced
>>>>>>> latency and I'm guessing it results in fill-in-then-drain 
>>>>>>> sequences in
>>>>>>> some cases which end up being long enough to make fq_codel_drop 
>>>>>>> more
>>>>>>> work than normal.
>>>>>>> 
>>>>>>> This is required for other changes and MU-MIMO performance
>>>>>>> improvements so this patch can't be removed.
>>>>>> 
>>>>>> But qca988x doesn't support MU-MIMO, AFAIK.
>>>>> 
>>>>> Correct.
>>>>> 
>>>>> 
>>>>>> Can this be made chip dependent?
>>>>> 
>>>>> I guess it could but it'd arguably make the driver more complex and
>>>>> harder to maintain. What we want is a long-term fix, not a 
>>>>> short-term
>>>>> one.
>>>> 
>>>> But we should never go backwards and TCP dropping from 750 Mbps to 
>>>> ~550
>>>> Mbps is a huge drop, so this is not ok. We have to do something to 
>>>> fix
>>>> this, be it reverting the wake_tx_queue support, somehow disabling 
>>>> it by
>>>> default or something.
>>> 
>>> I would agree with Kalle here. This looks like very serious 
>>> regression.
>>> But I'm afraid I can only help with testing here.
>> 
>> Can you give the following patch a try, please? I didn't get to
>> reproduce your problem on a real AP135/AP152 board and instead tried
>> to simulate a slow uni-proc system via KVM and cooling_device in
>> sysfs. The patch does improve things in this synthetic setup for me.
>> 
>>   http://lists.infradead.org/pipermail/ath10k/2016-May/007526.html
>> 
> 
> Unfortunately doesn't seem to make any difference at all (really, if
> there is, it's less than 10Mbps).
> Please see this thread also:
> https://lists.openwrt.org/pipermail/openwrt-devel/2016-May/041445.html
> That is with your and Eric's patch applied.
> 
Roman,

Can you please try without registering wake_tx_queue callback? software 
queuing is needed for devices that supports peer-flow-control.

diff --git a/drivers/net/wireless/ath/ath10k/mac.c 
b/drivers/net/wireless/ath/ath10k/mac.c
index 6829a08638b2..5df904169ded 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -7313,7 +7313,6 @@ ath10k_mac_op_switch_vif_chanctx(struct 
ieee80211_hw *hw,

  static const struct ieee80211_ops ath10k_ops = {
         .tx                             = ath10k_mac_op_tx,
-       .wake_tx_queue                  = ath10k_mac_op_wake_tx_queue,
         .start                          = ath10k_start,
         .stop                           = ath10k_stop,
         .config                         = ath10k_config,

-Rajkumar



More information about the ath10k mailing list