DPDK patches and discussions
 help / color / mirror / Atom feed
From: Matt Laswell <laswell@infiniteio.com>
To: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] Question about link up/down events and transmit queues
Date: Tue, 10 Mar 2015 15:29:31 -0500	[thread overview]
Message-ID: <CA+GnqAprA+V7mjfkLqLTvfREPCuuN=_1xcSu=nEMCWZdh=EU+g@mail.gmail.com> (raw)
In-Reply-To: <CA+GnqArTcrafX0o82JCnGy7kQ6d+w+yYu8gJVequnNfF-hJoKQ@mail.gmail.com>

Just a bit more on this.  We've found that when a link goes down, the TX
descriptor ring appears to fill up with packets fairly quickly, and then
calls to rte_eth_tx_burst() start returning zero.  Our application handles
this case, and frees the mbufs that could not be sent.

However, when link is reestablished, the TX descriptor ring appears to stay
full.  Hence, subsequent calls to rte_eth_tx_burst() continue to return
zero, and we continue to free the mbufs without sending them.  Frankly,
this was surprising, as we I have assumed that the TX descriptor ring would
be emptied when the link came back up, either by sending the enqueued
packets, or by reinitializing.

I've tried calling rte_eth_dev_start() and rte_eth_promiscuous_enable() in
order to restart everything.  That appears to work, at least on the
combination of drivers that I tested with.  Can somebody please tell me
whether this is the preferred way to recover from link down?

Thanks,

--
Matt Laswell
*infinite io, inc.*
laswell@infiniteio.com


On Tue, Mar 10, 2015 at 10:47 AM, Matt Laswell <laswell@infiniteio.com>
wrote:

> Hey Folks,
>
> I'm running into an issue that I hope is obvious and simple.  We're
> running DPDK 1.6.2 with an 82599 NIC.  We find that if, while running
> traffic, we disconnect a port and then later reconnect it, we never regain
> the ability to transmit packets out of that port after it comes back up.
> Specifically, our calls to rte_eth_tx_burst() get return values that
> indicate that no packets could be sent.
>
> Is there an additional step that we have to do on link down/up operations,
> perhaps to tell the NIC to flush its descriptor ring?
>
> Thanks in advance for your help.
>
> --
> Matt Laswell
> *infinite io, inc.*
> laswell@infiniteio.com
>

      reply	other threads:[~2015-03-10 20:29 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-10 15:47 Matt Laswell
2015-03-10 20:29 ` Matt Laswell [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='CA+GnqAprA+V7mjfkLqLTvfREPCuuN=_1xcSu=nEMCWZdh=EU+g@mail.gmail.com' \
    --to=laswell@infiniteio.com \
    --cc=dev@dpdk.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 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).