mbox series

[v2,0/3] wifi: ath12k: some improvement to RX throughput

Message ID 20231129020414.56425-1-quic_bqiang@quicinc.com
Headers show
Series wifi: ath12k: some improvement to RX throughput | expand

Message

Baochen Qiang Nov. 29, 2023, 2:04 a.m. UTC
Some fields of hal_reo_update_rx_queue are wrongly
defined, fix it in the first patch.

Currently the maximum block ACK window size is 256,
with the second patch, it is extended to BA1024.

The small MAC buffer ring becomes the bottle neck
in RX throughput test, so enlarge its size to get
a better peak result. This is done is the third patch.

With above three changes, more than 6% increase is
seen in RX throughput test.

v2:
 1. wifi: ath12k: fix wrong definitions of hal_reo_update_rx_queue
	no change.
 2. wifi: ath12k: add support for BA1024
	a) s/doen/done
	b) update struct hal_rx_reo_queue_1k
 3. wifi: ath12k: change MAC buffer ring size to 2048
	no change.

Baochen Qiang (3):
  wifi: ath12k: fix wrong definitions of hal_reo_update_rx_queue
  wifi: ath12k: add support for BA1024
  wifi: ath12k: change MAC buffer ring size to 2048

 drivers/net/wireless/ath/ath12k/dp.h       |  3 ++-
 drivers/net/wireless/ath/ath12k/dp_rx.c    |  2 +-
 drivers/net/wireless/ath/ath12k/hal_desc.h | 20 +++++++++++++-------
 drivers/net/wireless/ath/ath12k/hal_rx.c   | 11 ++++++++---
 drivers/net/wireless/ath/ath12k/mac.c      |  2 +-
 5 files changed, 25 insertions(+), 13 deletions(-)


base-commit: 16a212b4f33c4edd9ce9a9e0953b5389216e8ed9

Comments

Jeff Johnson Nov. 29, 2023, 3:35 p.m. UTC | #1
On 11/28/2023 6:04 PM, Baochen Qiang wrote:
> Some fields of hal_reo_update_rx_queue structure are wrongly
> defined, so fix it.
> 
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4
> 
> Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com>
Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Jeff Johnson Nov. 29, 2023, 3:35 p.m. UTC | #2
On 11/28/2023 6:04 PM, Baochen Qiang wrote:
> Currently the maximum block ACK window size supported is 256.
> This results in that, when connected to an AP which supports
> larger BA sizes like BA512 or BA1024, only BA256 is
> established, leading to a lower peak throughput.
> 
> So add support for BA1024, this is done by allocating a larger
> REO queue and advertising IEEE80211_MAX_AMPDU_BUF_EHT support
> to MAC80211.
> 
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4
> 
> Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com>
Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Kalle Valo Jan. 17, 2024, 1:46 p.m. UTC | #3
Baochen Qiang <quic_bqiang@quicinc.com> writes:

> Some fields of hal_reo_update_rx_queue are wrongly
> defined, fix it in the first patch.
>
> Currently the maximum block ACK window size is 256,
> with the second patch, it is extended to BA1024.
>
> The small MAC buffer ring becomes the bottle neck
> in RX throughput test, so enlarge its size to get
> a better peak result. This is done is the third patch.
>
> With above three changes, more than 6% increase is
> seen in RX throughput test.
>
> v2:
>  1. wifi: ath12k: fix wrong definitions of hal_reo_update_rx_queue
> 	no change.
>  2. wifi: ath12k: add support for BA1024
> 	a) s/doen/done
> 	b) update struct hal_rx_reo_queue_1k
>  3. wifi: ath12k: change MAC buffer ring size to 2048
> 	no change.
>
> Baochen Qiang (3):
>   wifi: ath12k: fix wrong definitions of hal_reo_update_rx_queue
>   wifi: ath12k: add support for BA1024
>   wifi: ath12k: change MAC buffer ring size to 2048

I had conflicts, please double check:

https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=pending&id=1ee7c1872873d82a71e05a4e17cbf9a569bc8ec9
https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=pending&id=4d75db679457b5b7e04271f5174d9128d7d73ecf
https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=pending&id=db549be42740d286ee6ec8b2860b4e4789be2167
Jeff Johnson Jan. 17, 2024, 3:32 p.m. UTC | #4
On 1/17/2024 5:46 AM, Kalle Valo wrote:
> Baochen Qiang <quic_bqiang@quicinc.com> writes:
> 
>> Some fields of hal_reo_update_rx_queue are wrongly
>> defined, fix it in the first patch.
>>
>> Currently the maximum block ACK window size is 256,
>> with the second patch, it is extended to BA1024.
>>
>> The small MAC buffer ring becomes the bottle neck
>> in RX throughput test, so enlarge its size to get
>> a better peak result. This is done is the third patch.
>>
>> With above three changes, more than 6% increase is
>> seen in RX throughput test.
>>
>> v2:
>>  1. wifi: ath12k: fix wrong definitions of hal_reo_update_rx_queue
>> 	no change.
>>  2. wifi: ath12k: add support for BA1024
>> 	a) s/doen/done
>> 	b) update struct hal_rx_reo_queue_1k
>>  3. wifi: ath12k: change MAC buffer ring size to 2048
>> 	no change.
>>
>> Baochen Qiang (3):
>>   wifi: ath12k: fix wrong definitions of hal_reo_update_rx_queue
>>   wifi: ath12k: add support for BA1024
>>   wifi: ath12k: change MAC buffer ring size to 2048
> 
> I had conflicts, please double check:
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=pending&id=1ee7c1872873d82a71e05a4e17cbf9a569bc8ec9
> https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=pending&id=4d75db679457b5b7e04271f5174d9128d7d73ecf
> https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=pending&id=db549be42740d286ee6ec8b2860b4e4789be2167

These look good to me, but Baochen should also confirm
Baochen Qiang Jan. 18, 2024, 2:21 a.m. UTC | #5
On 1/17/2024 11:32 PM, Jeff Johnson wrote:
> On 1/17/2024 5:46 AM, Kalle Valo wrote:
>> Baochen Qiang <quic_bqiang@quicinc.com> writes:
>>
>>> Some fields of hal_reo_update_rx_queue are wrongly
>>> defined, fix it in the first patch.
>>>
>>> Currently the maximum block ACK window size is 256,
>>> with the second patch, it is extended to BA1024.
>>>
>>> The small MAC buffer ring becomes the bottle neck
>>> in RX throughput test, so enlarge its size to get
>>> a better peak result. This is done is the third patch.
>>>
>>> With above three changes, more than 6% increase is
>>> seen in RX throughput test.
>>>
>>> v2:
>>>   1. wifi: ath12k: fix wrong definitions of hal_reo_update_rx_queue
>>> 	no change.
>>>   2. wifi: ath12k: add support for BA1024
>>> 	a) s/doen/done
>>> 	b) update struct hal_rx_reo_queue_1k
>>>   3. wifi: ath12k: change MAC buffer ring size to 2048
>>> 	no change.
>>>
>>> Baochen Qiang (3):
>>>    wifi: ath12k: fix wrong definitions of hal_reo_update_rx_queue
>>>    wifi: ath12k: add support for BA1024
>>>    wifi: ath12k: change MAC buffer ring size to 2048
>>
>> I had conflicts, please double check:
>>
>> https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=pending&id=1ee7c1872873d82a71e05a4e17cbf9a569bc8ec9
>> https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=pending&id=4d75db679457b5b7e04271f5174d9128d7d73ecf
>> https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=pending&id=db549be42740d286ee6ec8b2860b4e4789be2167
> 
> These look good to me, but Baochen should also confirm
> 
Also looks good to me.