On 2020-04-09 22:53, Kalle Valo wrote:
Wen Gong <[email protected]> writes:

+       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?

For tcp test, it has 4 thread work meanwhile:
tx_bundle_skbs(ar->workqueue),
rx_indication(ar->workqueue_aux),
sdio_async_tx_request(ar_sdio->workqueue),
tx_bundle_complete(ar->workqueue_tx_complete)

It has 4+ cpu/core in system, if reduced to 3 threads, then tcp throughput will drop. only when it only has 1/2/3 cpu/core in system, then reduced to 3 threads will not drop.

_______________________________________________
ath10k mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/ath10k

Reply via email to