mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
49 lines
2.0 KiB
Diff
49 lines
2.0 KiB
Diff
From 20768a08b77ba4ceaa6094a7bbca7973599b19dc Mon Sep 17 00:00:00 2001
|
|
From: Sean Anderson <sean.anderson@seco.com>
|
|
Date: Mon, 2 Aug 2021 13:09:04 -0400
|
|
Subject: [PATCH 094/179] brcmfmac: Set SDIO workqueue as WQ_HIGHPRI
|
|
|
|
commit 41b637bac0b0a90424793aa1ec265b24c4c50fb1 upstream.
|
|
|
|
This puts tasks submitted to the SDIO workqueue at the head of the queue
|
|
and runs them immediately. This gets higher RX throughput with the SDIO
|
|
bus.
|
|
|
|
This was originally submitted as [1]. The original author Wright Feng
|
|
reports
|
|
|
|
> throughput result with 43455(11ac) on 1 core 1.6 Ghz platform is
|
|
> Without WQ_HIGGPRI TX/RX: 293/301 (mbps)
|
|
> With WQ_HIGHPRI TX/RX: 293/321 (mbps)
|
|
|
|
I tested this with a 43364(11bgn) on a 1 core 800 MHz platform and got
|
|
Without WQ_HIGHPRI TX/RX: 16/19 (Mbits/sec)
|
|
With WQ_HIGHPRI TX/RX: 24/20 (MBits/sec)
|
|
|
|
[1] https://lore.kernel.org/linux-wireless/1584604406-15452-4-git-send-email-wright.feng@cypress.com/
|
|
|
|
Signed-off-by: Sean Anderson <sean.anderson@seco.com>
|
|
Reviewed-by: Arend van Spriel <aspriel@gmail.com>
|
|
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
|
Link: https://lore.kernel.org/r/20210802170904.3116223-1-sean.anderson@seco.com
|
|
---
|
|
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
|
|
index b134a72e2f1f..7e0aeb1434fd 100644
|
|
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
|
|
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
|
|
@@ -4764,7 +4764,7 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
|
|
bus->tx_seq = SDPCM_SEQ_WRAP - 1;
|
|
|
|
/* single-threaded workqueue */
|
|
- wq = alloc_ordered_workqueue("brcmf_wq/%s", WQ_MEM_RECLAIM,
|
|
+ wq = alloc_ordered_workqueue("brcmf_wq/%s", WQ_MEM_RECLAIM | WQ_HIGHPRI,
|
|
dev_name(&sdiodev->func1->dev));
|
|
if (!wq) {
|
|
brcmf_err("insufficient memory to create txworkqueue\n");
|
|
--
|
|
2.17.1
|
|
|