Wen Gong <[email protected]> writes:
> The transmission utilization ratio for sdio bus for small packet is
> slow, because the space and time cost for sdio bus is same for large
> length packet and small length packet. So the speed of data for large
> length packet is higher than small length.
>
> Test result of different length of data:
>
> data packet(byte) cost time(us) calculated rate(Mbps)
> 256 28 73
> 512 33 124
> 1024 35 234
> 1792 45 318
> 14336 168 682
> 28672 333 688
> 57344 660 695
>
> This patch change the TX packet from single packet to a large length
> bundle packet, max size is 32, it results in significant performance
> improvement on TX path.
>
> This patch only effect sdio chip, it will not effect PCI, SNOC etc.
> It only enable bundle for sdio chip.
>
> Tested with QCA6174 SDIO with firmware
> WLAN.RMH.4.4.1-00017-QCARMSWP-1.
>
> Signed-off-by: Wen Gong <[email protected]>
[...]
> --- a/drivers/net/wireless/ath/ath10k/core.c
> +++ b/drivers/net/wireless/ath/ath10k/core.c
> @@ -3208,6 +3208,11 @@ struct ath10k *ath10k_core_create(size_t priv_size,
> struct device *dev,
> if (!ar->workqueue_aux)
> goto err_free_wq;
>
> + ar->workqueue_tx_complete =
> + create_singlethread_workqueue("ath10k_tx_complete_wq");
> + if (!ar->workqueue_tx_complete)
> + goto err_free_aux_wq;
We already have three threads:
ath/ath10k/core.c: ar->workqueue =
create_singlethread_workqueue("ath10k_wq");
ath/ath10k/core.c: ar->workqueue_aux =
create_singlethread_workqueue("ath10k_aux_wq");
ath/ath10k/sdio.c: ar_sdio->workqueue =
create_singlethread_workqueue("ath10k_sdio_wq");
Do we really need a fourth one? For example, why can't we use
ar->workqueue_aux?
--
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
_______________________________________________
ath10k mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/ath10k