All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wright Feng <Wright.Feng@cypress.com>
To: "linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>
Cc: Wright Feng <Wright.Feng@cypress.com>,
	"arend.vanspriel@broadcom.com" <arend.vanspriel@broadcom.com>,
	"franky.lin@broadcom.com" <franky.lin@broadcom.com>,
	"hante.meuleman@broadcom.com" <hante.meuleman@broadcom.com>,
	"kvalo@codeaurora.org" <kvalo@codeaurora.org>,
	Chi-Hsien Lin <Chi-Hsien.Lin@cypress.com>,
	"brcm80211-dev-list.pdl@broadcom.com" 
	<brcm80211-dev-list.pdl@broadcom.com>
Subject: [PATCH 1/3] brcmfmac: calling skb_orphan before sending skb to SDIO bus
Date: Mon, 29 Oct 2018 10:27:15 +0000	[thread overview]
Message-ID: <1540808552-28738-2-git-send-email-wright.feng@cypress.com> (raw)
In-Reply-To: <1540808552-28738-1-git-send-email-wright.feng@cypress.com>

Linux 3.6 introduces TSQ which has a per socket threshold for TCP Tx
packets to reduce latency. In fcmode 1 and fcmode 2, host driver enqueues
skb in hanger and TCP doesn't push new skb until host frees the skb when
receiving fwstatus event. So using skb_orphan before sending skb to bus
will make the skb removing the ownership of socket. With this patch, we
are able to get better throughput in fcmode 1 and fcmode 2.

Tested 43455 TCP throughput in 20 MHz bandwidth with / without this patch.
fcmode 0: 59.5 / 59.6 (mbps)
fcmode 1: 59.3 / 23.4 (mbps)
fcmode 2: 59.6 / 21.5 (mbps)

Signed-off-by: Wright Feng <wright.feng@cypress.com>
---
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
index b2e1ab5..519b25d 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
@@ -2298,6 +2298,7 @@ static uint brcmf_sdio_sendfromq(struct brcmf_sdio *bus, uint maxframes)
 					      &prec_out);
 			if (pkt == NULL)
 				break;
+			skb_orphan(pkt);
 			__skb_queue_tail(&pktq, pkt);
 		}
 		spin_unlock_bh(&bus->txq_lock);
-- 
1.9.1


  reply	other threads:[~2018-10-29 10:27 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-29 10:27 [PATCH 0/3] brcmfmac: throughput enhancement for SDIO and flow control mode Wright Feng
2018-10-29 10:27 ` Wright Feng [this message]
2018-10-29 18:50   ` [PATCH 1/3] brcmfmac: calling skb_orphan before sending skb to SDIO bus Franky Lin
2018-11-02  3:08     ` Wright Feng
2018-11-02 19:51       ` Franky Lin
2018-11-03  1:36         ` Wright Feng
2018-10-29 10:27 ` [PATCH 2/3] brcmfmac: add credit numbers updating support Wright Feng
2018-10-30 11:04   ` Arend van Spriel
2018-11-02  7:54     ` Wright Feng
2018-10-29 10:27 ` [PATCH 3/3] brcmfmac: make firmware frameburst mode a module parameter Wright Feng
2018-10-30 11:33   ` Arend van Spriel
2018-11-02  3:22     ` Wright Feng

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1540808552-28738-2-git-send-email-wright.feng@cypress.com \
    --to=wright.feng@cypress.com \
    --cc=Chi-Hsien.Lin@cypress.com \
    --cc=arend.vanspriel@broadcom.com \
    --cc=brcm80211-dev-list.pdl@broadcom.com \
    --cc=franky.lin@broadcom.com \
    --cc=hante.meuleman@broadcom.com \
    --cc=kvalo@codeaurora.org \
    --cc=linux-wireless@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.