From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ie0-f176.google.com (mail-ie0-f176.google.com [209.85.223.176]) by dpdk.org (Postfix) with ESMTP id D707B58EF for ; Tue, 10 Mar 2015 21:29:31 +0100 (CET) Received: by iecsf10 with SMTP id sf10so29209494iec.2 for ; Tue, 10 Mar 2015 13:29:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=kvLnMsUX4KANdyfxE9nUEWGhPGV/sBv1N8kwk9EwByE=; b=aCHBJjxrpHlRAavUEOluFri4M9reQ4CIypGNFzXT15fb8yr2UmcjvU4ZTnSotQxEmi 1h0MEvAS9PhS4HRrSPdKEq+zO69fb3Px5U3BI/M0DMmv8h+TdYAjut09fRht9qPTbXmG ze7hdLZ5djol0tBMJsZiVi31hGVKwBZaGpVpzMJ9vyCtqy/76/BKgJlHoFVvTD5d3YhQ 005kY5Ty9hM2kQbprqhmcZCjtn/dXxJm1xwoGBmnvCNL8QrK+6+HbE085/zWL1CZylEr w2puqQM0LdP+jtqnlF3QcNKq0GXC+650Wup3HINPduU7U78dVLs09pfW8uwo5PjmlXZH J4bw== X-Gm-Message-State: ALoCoQnfCpqWHIF5q61OJMdExG7iB8UqEMVmiN/16G3XvnZ6wX1Zu13k4QfYKbEZJmdMr9ApCa7v MIME-Version: 1.0 X-Received: by 10.50.7.1 with SMTP id f1mr59612178iga.8.1426019371164; Tue, 10 Mar 2015 13:29:31 -0700 (PDT) Received: by 10.36.1.207 with HTTP; Tue, 10 Mar 2015 13:29:31 -0700 (PDT) In-Reply-To: References: Date: Tue, 10 Mar 2015 15:29:31 -0500 Message-ID: From: Matt Laswell To: "dev@dpdk.org" Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] Question about link up/down events and transmit queues X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Mar 2015 20:29:32 -0000 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 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 >