netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Amir Vadai <amirv.mellanox@gmail.com>
To: Eric Dumazet <eric.dumazet@gmail.com>, Amir Vadai <amirv@mellanox.com>
Cc: "David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	netdev@vger.kernel.org, Yevgeny Petrilin <yevgenyp@mellanox.com>,
	Or Gerlitz <ogerlitz@mellanox.com>,
	Ido Shamay <idos@mellanox.com>
Subject: Re: [PATCH net-next] net/mlx4_en: remove NETDEV_TX_BUSY
Date: Tue, 07 Oct 2014 11:30:06 +0300	[thread overview]
Message-ID: <5433A48E.1040505@gmail.com> (raw)
In-Reply-To: <1412613035.11091.72.camel@edumazet-glaptop2.roam.corp.google.com>

On 10/6/2014 7:30 PM, Eric Dumazet wrote:
> From: Eric Dumazet <edumazet@google.com>
> 
> Drivers should avoid NETDEV_TX_BUSY as much as possible.
> 
> They should stop the tx queue before qdisc even tries to push another
> packet, to avoid requeues.
> 
> For a driver supporting skb->xmit_more, this is likely to be a prereq
> anyway, otherwise we could have a tx deadlock : We need to force a
> doorbell if TX ring is full.
> 
> Signed-off-by: Eric Dumazet <edumazet@google.com>
> ---

Reviewed. Also verified that it fixes the deadlock (by sending a large
burst - larger than ring size). Before this fix, last packet of the
burst wasn't sent, therefore no doorbell was rang, and the queue was
stalled.

BTW, another nice optimization that we hope to send soon, is not to arm
the CQ unless ringing the doorbell.

Acked-by: Amir Vadai <amirv@mellanox.com>

  reply	other threads:[~2014-10-07  8:30 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-06  6:15 [PATCH net-next V1 00/14] net/mlx4_en: Optimizations to TX flow Amir Vadai
2014-10-06  6:15 ` [PATCH net-next V1 01/14] net/mlx4_en: Code cleanups in tx path Amir Vadai
2014-10-06  6:15 ` [PATCH net-next V1 02/14] net/mlx4_en: Align tx path structures to cache lines Amir Vadai
2014-10-06  6:15 ` [PATCH net-next V1 03/14] net/mlx4_en: Avoid calling bswap in tx fast path Amir Vadai
2014-10-06  6:15 ` [PATCH net-next V1 04/14] net/mlx4_en: tx_info allocated with kmalloc() instead of vmalloc() Amir Vadai
2014-10-06  6:15 ` [PATCH net-next V1 05/14] net/mlx4_en: Avoid a cache line miss in TX completion for single frag skb's Amir Vadai
2014-10-06  6:15 ` [PATCH net-next V1 06/14] net/mlx4_en: Use prefetch in tx path Amir Vadai
2014-10-06  6:15 ` [PATCH net-next V1 07/14] net/mlx4_en: Avoid false sharing in mlx4_en_en_process_tx_cq() Amir Vadai
2014-10-06  6:15 ` [PATCH net-next V1 08/14] net/mlx4_en: mlx4_en_xmit() reads ring->cons once, and ahead of time to avoid stalls Amir Vadai
2014-10-06  6:15 ` [PATCH net-next V1 09/14] net/mlx4_en: Use local var in tx flow for skb_shinfo(skb) Amir Vadai
2014-10-06  6:15 ` [PATCH net-next V1 10/14] net/mlx4_en: Use local var for skb_headlen(skb) Amir Vadai
2014-10-06  6:16 ` [PATCH net-next V1 11/14] net/mlx4_en: tx_info->ts_requested was not cleared Amir Vadai
2014-10-06  6:16 ` [PATCH net-next V1 12/14] net/mlx4_en: Enable the compiler to make is_inline() inlined Amir Vadai
2014-10-06  6:16 ` [PATCH net-next V1 13/14] ethtool: Ethtool parameter to dynamically change tx_copybreak Amir Vadai
2014-10-06  6:16 ` [PATCH net-next V1 14/14] net/mlx4_en: Use the new tx_copybreak to set inline threshold Amir Vadai
2014-10-06 12:51 ` [PATCH net-next V1 00/14] net/mlx4_en: Optimizations to TX flow Eric Dumazet
2014-10-06 12:54   ` Amir Vadai
2014-10-06 16:30   ` [PATCH net-next] net/mlx4_en: remove NETDEV_TX_BUSY Eric Dumazet
2014-10-07  8:30     ` Amir Vadai [this message]
2014-10-07 12:38       ` Eric Dumazet
2014-10-07 17:21       ` 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=5433A48E.1040505@gmail.com \
    --to=amirv.mellanox@gmail.com \
    --cc=amirv@mellanox.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=eric.dumazet@gmail.com \
    --cc=idos@mellanox.com \
    --cc=netdev@vger.kernel.org \
    --cc=ogerlitz@mellanox.com \
    --cc=yevgenyp@mellanox.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).