]> git.baikalelectronics.ru Git - kernel.git/commit
brcmfmac: set pacing shift before transmitting skb to bus
authorWright Feng <wright.feng@cypress.com>
Wed, 24 Jun 2020 09:16:08 +0000 (04:16 -0500)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 14 Jul 2020 09:50:07 +0000 (12:50 +0300)
commit0d34f8b5ce4a2550fcaf1aee2712cc42cd95ebac
tree80e7e9946a433e2ed11571d29c1caefdb20854ec
parent9403038cb284edcc64b62a85795c6f82ea74089a
brcmfmac: set pacing shift before transmitting skb to bus

Linux 3.6 introduces TSQ which has a per socket threshold for TCP Tx
packet to reduce latency. In flow control mode, host driver enqueues skb
in hanger and TCP doesn't push new skb frees until host frees the skb when
receiving fwstatus event. So set pacing shift 8 to send them as a single
large aggregate frame to the bus layer.

43455 TX TCP throughput in different FC modes on Linux 5.4.18

sk_pacing_shift : Throughput (fcmode=0)
10: 245 Mbps
 9: 245 Mbps
 8: 246 Mbps
 7: 246 Mbps

sk_pacing_shift : Throughput (fcmode=1)
10: 182 Mbps
 9: 197 Mbps
 8: 206 Mbps
 7: 207 Mbps

sk_pacing_shift : Throughput (fcmode=2)
10: 180 Mbps
 9: 197 Mbps
 8: 206 Mbps
 7: 207 Mbps

Signed-off-by: Wright Feng <wright.feng@cypress.com>
Signed-off-by: Chi-hsien Lin <chi-hsien.lin@cypress.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20200624091608.25154-3-wright.feng@cypress.com
drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c