Kalle Valo <kvalo@xxxxxxxxxxxxxx> writes: > Wen Gong <wgong@xxxxxxxxxxxxxx> writes: > >> On 2020-04-09 22:53, Kalle Valo wrote: >>> Wen Gong <wgong@xxxxxxxxxxxxxx> 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. > > How much does it drop? Please add the justification (with numbers) for > the new thread to the commit log, so that the reason is properly > documented. I see that you already submitted v10. If you can give the numbers I can add them to the commit log. -- https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches