DPDK patches and discussions
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: Dmitry Vyal <dmitryvyal@gmail.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] DPDK delaying individual packets infinitely
Date: Thu, 2 Jan 2014 08:43:35 -0800	[thread overview]
Message-ID: <20140102084335.1c8240fe@nehalam.linuxnetplumber.net> (raw)
In-Reply-To: <52A1CF9D.30708@gmail.com>

On Fri, 06 Dec 2013 17:22:37 +0400
Dmitry Vyal <dmitryvyal@gmail.com> wrote:

> Hello list,
> 
> For some time I've been writing a custom packet generator coupled with a 
> packet receiver using DPDK.
> 
> It works greatly when used for generating  millions of packets, but 
> unexpectedly It has troubles generating a several dozens of packets or so.
> 
> The application consists of two threads, first one sends the packets 
> from one port and second receives them on another. These are 2 ports of 
> four-ports 1Gb NIC. It's detected as Intel Corporation 82576 Gigabit 
> Network Connection (rev 01). Ports are connected with a patch cord.

I saw something similar with some NIC's and backported a fix from
the Linux driver to make sure that threshold was not set incorrectly.
Maybe something similar is needed with your hardware or is missing in
the version of DPDK you ar using.



Subject: [PATCH 4/8] igb: workaround errata with wthresh on 82576

The 82576 has known issues which require the write threshold to be
set to 1.
See:
	http://download.intel.com/design/network/specupdt/82576_SPECUPDATE.pdf
---
 lib/librte_pmd_e1000/em_rxtx.c |    5 +++++
 1 file changed, 5 insertions(+)

--- a/lib/librte_pmd_e1000/em_rxtx.c	2013-04-10 13:59:55.166549303 -0700
+++ b/lib/librte_pmd_e1000/em_rxtx.c	2013-04-10 14:00:44.049915140 -0700
@@ -1270,6 +1270,8 @@ eth_em_tx_queue_setup(struct rte_eth_dev
 	txq->pthresh = tx_conf->tx_thresh.pthresh;
 	txq->hthresh = tx_conf->tx_thresh.hthresh;
 	txq->wthresh = tx_conf->tx_thresh.wthresh;
+	if (txq->wthresh > 0 && hw->mac.type == e1000_82576)
+		txq->wthresh = 1;
 	txq->queue_id = queue_idx;
 	txq->port_id = dev->data->port_id;
 
@@ -1391,6 +1393,9 @@ eth_em_rx_queue_setup(struct rte_eth_dev
 	rxq->pthresh = rx_conf->rx_thresh.pthresh;
 	rxq->hthresh = rx_conf->rx_thresh.hthresh;
 	rxq->wthresh = rx_conf->rx_thresh.wthresh;
+	if (rxq->wthresh > 0 && hw->mac.type == e1000_82576)
+		rxq->wthresh = 1;
+
 	rxq->rx_free_thresh = rx_conf->rx_free_thresh;
 	rxq->queue_id = queue_idx;
 	rxq->port_id = dev->data->port_id;

      parent reply	other threads:[~2014-01-02 16:42 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-06 13:22 Dmitry Vyal
2014-01-02 13:59 ` Thomas Monjalon
2014-01-02 16:43 ` Stephen Hemminger [this message]

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=20140102084335.1c8240fe@nehalam.linuxnetplumber.net \
    --to=stephen@networkplumber.org \
    --cc=dev@dpdk.org \
    --cc=dmitryvyal@gmail.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).