All of lore.kernel.org
 help / color / mirror / Atom feed
From: Giuseppe CAVALLARO <peppe.cavallaro@st.com>
To: Beniamino Galvani <b.galvani@gmail.com>,
	"David S. Miller" <davem@davemloft.net>
Cc: Florian Fainelli <f.fainelli@gmail.com>,
	Dave Taht <dave.taht@gmail.com>, <netdev@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2] net: stmmac: add BQL support
Date: Thu, 22 Jan 2015 12:58:02 +0100	[thread overview]
Message-ID: <54C0E5CA.80902@st.com> (raw)
In-Reply-To: <1421863647-20048-1-git-send-email-b.galvani@gmail.com>

On 1/21/2015 7:07 PM, Beniamino Galvani wrote:
> Add support for Byte Queue Limits to the STMicro MAC driver.
>
> Tested on a Amlogic S802 quad Cortex-A9 board, where the use of BQL
> decreases the latency of a high priority ping from ~12ms to ~1ms when
> the 100Mbit link is saturated by 20 TCP streams.
>
> Signed-off-by: Beniamino Galvani <b.galvani@gmail.com>


Ciao Beniamino

thx for the patch, I also see some improvements on my side

Acked-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>

> ---
> Changes since v1:
>   - don't access skb->len after the start of DMA transmission in
>     stmmac_xmit(), to avoid potential use after free in case tx_lock is
>     removed in the future
>
>   drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 9 +++++++++
>   1 file changed, 9 insertions(+)
>
> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> index 118a427..1d74313 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> @@ -1097,6 +1097,7 @@ static int init_dma_desc_rings(struct net_device *dev, gfp_t flags)
>
>   	priv->dirty_tx = 0;
>   	priv->cur_tx = 0;
> +	netdev_reset_queue(priv->dev);
>
>   	stmmac_clear_descriptors(priv);
>
> @@ -1300,6 +1301,7 @@ static void stmmac_dma_operation_mode(struct stmmac_priv *priv)
>   static void stmmac_tx_clean(struct stmmac_priv *priv)
>   {
>   	unsigned int txsize = priv->dma_tx_size;
> +	unsigned int bytes_compl = 0, pkts_compl = 0;
>
>   	spin_lock(&priv->tx_lock);
>
> @@ -1356,6 +1358,8 @@ static void stmmac_tx_clean(struct stmmac_priv *priv)
>   		priv->hw->mode->clean_desc3(priv, p);
>
>   		if (likely(skb != NULL)) {
> +			pkts_compl++;
> +			bytes_compl += skb->len;
>   			dev_consume_skb_any(skb);
>   			priv->tx_skbuff[entry] = NULL;
>   		}
> @@ -1364,6 +1368,9 @@ static void stmmac_tx_clean(struct stmmac_priv *priv)
>
>   		priv->dirty_tx++;
>   	}
> +
> +	netdev_completed_queue(priv->dev, pkts_compl, bytes_compl);
> +
>   	if (unlikely(netif_queue_stopped(priv->dev) &&
>   		     stmmac_tx_avail(priv) > STMMAC_TX_THRESH(priv))) {
>   		netif_tx_lock(priv->dev);
> @@ -1418,6 +1425,7 @@ static void stmmac_tx_err(struct stmmac_priv *priv)
>   						     (i == txsize - 1));
>   	priv->dirty_tx = 0;
>   	priv->cur_tx = 0;
> +	netdev_reset_queue(priv->dev);
>   	priv->hw->dma->start_tx(priv->ioaddr);
>
>   	priv->dev->stats.tx_errors++;
> @@ -2048,6 +2056,7 @@ static netdev_tx_t stmmac_xmit(struct sk_buff *skb, struct net_device *dev)
>   	if (!priv->hwts_tx_en)
>   		skb_tx_timestamp(skb);
>
> +	netdev_sent_queue(dev, skb->len);
>   	priv->hw->dma->enable_dma_transmission(priv->ioaddr);
>
>   	spin_unlock(&priv->tx_lock);
>


  parent reply	other threads:[~2015-01-22 11:58 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-21 18:07 [PATCH v2] net: stmmac: add BQL support Beniamino Galvani
2015-01-21 18:37 ` Eric Dumazet
2015-01-22 11:58 ` Giuseppe CAVALLARO [this message]
2015-01-26 23:22 ` David Miller

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=54C0E5CA.80902@st.com \
    --to=peppe.cavallaro@st.com \
    --cc=b.galvani@gmail.com \
    --cc=dave.taht@gmail.com \
    --cc=davem@davemloft.net \
    --cc=f.fainelli@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@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.